如何用C#实现数据库全文检索

如何用C#实现数据库全文检索,第1张

目前行业网站的全文检索的方式主要有两种

方式一:通过数据库自带的全文索引

方式二:通过程序来自建全文索引系统

以sql server 2005为例

2005本身就自带全文索引功能,你可以先对数据库表

建立索引,具体如何建索引网上搜索一下,建立完索引之后,你就可以用sql来实现检索功能,例如:select * from ytbxw where

contaiins(字段,' 中国')多个查询值之间可以用and 或

or来实现,在单表以及单表视图上建全文索引对2005来说根本不是问题,但在多表视图建全文索引2005目前还无法实现这个功能,拿

www.ytbxw.com为例,其每个栏目的信息都是分开存放的,所以在检索上就无法用该方法来解决这个问题.

下面重点说一下如何用程序来实现检索功能

如果你想自己开发一个全文检索系统,我想这是相当复杂事情,要想实现也不是那么容易的事情,所以在这里我推荐一套开源程序,那就是dotlucene,我想大家可能都听过这个东东吧,那我就讲讲如何来实现多表情况下的全文检索.

1、新建winform项目,把lucene.net.dll添加到该项目中来

2、创建一个类,类名可以自己取

public class indexer

{

private indexwriter writer

 //在指定路径下创建索引文件

public indexer(string directory)

{

writer = new indexwriter(directory, new standardanalyzer(), true)

writer.setusecompoundfile(true)

}

 //将信息添加到索引文件中

/*

field.text:为索引+读取

field.unindexed:不需要做索引

*/

public void addhtmldocument(string path,string title,string content)

{

document doc = new document()

doc.add(field.text("text", content))

doc.add(field.unindexed("path", path))

doc.add(field.text("title", title))

writer.adddocument(doc)

}

//解析html,过滤html代码

private string parsehtml(string html)

{

string temp = regex.replace(html, "<[^>]*>", "")

return temp.replace(" ", " ")

}

//从页面中获取文章标题

private string gettitle(string html)

{

match m = regex.match(html, "<title>(.*)</title>")

if (m.groups.count == 2)

return m.groups[1].value

return "(unknown)"

}

//添加新闻到索引

public void addnews()

{

//从数据库获取记录(这部分略过)

for (int i = 1i <= pagesizei++)

{

rootid = int.parse(dr["classid"].tostring().substring(0, 2))

// 写入索引

addhtmldocument(http://www.ytbxw.com + dr["id"].tostring() + ".html",

dr["title"].tostring(), parsehtml(dr["content"].tostring()))

}/info/

}

//关闭索引

public void close()

{

writer.optimize()

writer.close()

}

}

这里看看吧,目前可以免费提供使用。QQ:493812065

主页:www.lazyman.cn

懒汉搜索引擎简介

"懒汉搜索",是一款专门为全国行业网站、门户网站、电子商务网站定做的专业搜索引擎。它通过对网站数据库的数据建立索引,查询时不访问数据库,能有效减轻数据库和系统的压力,目前可以支持1000 万级的数据,毫秒级的查询时间,每秒100 人的并发访问,从而实现大容量、高速的目标;可以适应linux和 window平台,支持多种数据库接口,具备较强的兼容性;它具备通用搜索引擎的构架和功能,可以对用户的输入进行分词,可以进行多关键字搜索、关键词组合搜索、句子搜索,大大提高了用户 *** 作的友好度;同时能够根据客户的需求进行用户的数据挖掘,提高网站系统的价值。

1. 符合现代网民对搜索的惯性和依赖

据权威机构调查表明,96.5 %的网名使用过搜索引擎,68.3 %的网民经常使用搜索引擎。在信息爆发时代的今天,一级一级往下展开的栏目分类检索已经让网民失去了耐心,他们已经习惯使用搜索引擎来找他们感兴趣的东西,同时对搜索引擎的功能要求也越来越高。

这样用户进入一个网站之后,如果不能让用户方便的查找到他所需要的信息,他们也找不到熟悉的搜索输入框,他们会感到很陌生和意外,可能马上会离开,您的网站可能提供了很好的内容,但用户不习惯也没耐心去挖掘。

"懒汉搜索"根据客户的搜索,按照一个主题把所有相关文档提供给访问者,可以让访问者更全面的了解他所想要的东西,这增加了网站信息间的组织性和逻辑性,方便了访问者的使用,提升用户体验度。

2. 多关键字组合、句子查询,达到毫秒级的速度

为了迎合大多数网民对搜索功能的惯性和依赖性,很多网站只好提供通过SQL语句查询数据库来实现一些简单的模糊匹配,但是这种"搜索"功能通常只能匹配一个关键字,匹配的数据库字段也非常有限。 "懒汉搜索"不仅仅具备通用搜索引擎的构架和功能,同时可以对用户的输入进行分词,用户可以随便地输入一个或多个关键词,甚至输入一句话,大大提高了用户 *** 作的友好度。同时"懒汉搜索"在数据容量、查询速度、功能性、适用性、兼容性等方面也具有很高的专业水平。

3. 查询不访问数据库,降到数据库负担,减轻系统压力

当用户直接查询数据库,不但查询速度慢,而且会导致数据库的压力增大,当数据库记录超过一定数量时,频繁地查询数据库,会导致数据库的负载直线上升,从而波及其它功能的使用,尤其是同时有很多用户访问的时候,对数据库和系统会产生较大的压力,严重时会导致信息塞车,甚至会导致系统崩溃。

"懒汉搜索" 是一套真正的搜索引擎,它通过对数据库的数据进行索引,在查询时不访问数据库,可以实现毫秒级的检索速度和每秒上百次的并发访问,用户搜索对数据库的压力为零。

4.完善的统计功能,掌握用户需求,抓住市场动向

"懒汉搜索"还具备完善的统计功能,其日志功能能记录检索词和结果,可以统计一段时间内关键字的访问频度,列出前100 个热门关键字。让客户能较好能够把握其用户的需求, 抓住市场动向,在当今信息万变的时代把握用户心理变化,创造最大的财富。

5. 按关键字投放广告,实现网站盈利

广告是目前互联网盈利的最重要也是最直接的途径,网络广告也有着很好的发展前景。据 Jupiter调研公司发布的一项研究报告指出,美国网络广告开支 2011年将达到 259亿美元,占到广告开支总额的9% ,而付费搜索将是主要动力,互联网搜索广告2005年已经超过了显示广告 , 搜索广告的大幅增长是由于新客户和广告商争夺广告位,这提高了价格。而且,随着搜索广告商的成熟,他们开始采用更多关键词,但盲目的投放广告,也可能会导致用户的反感,怎么办?只投放用户感兴趣的广告! "懒汉搜索"可以根据用户输入的关键字,自动匹配广告,让你的广告有的放矢,做到真正的分众!

6. 迅速提高自己的技术门槛

有没有专业网站检索其实已经不只是用户体验度的问题了,还是一个网站专业身份的象征,也是网站所属公司形象的体现。浏览国外公司的网站,会发现几乎所有网站都在首页最明显的区域放置了一个搜索框,这传达的信息是:专业的网站都有专业网站检索。网民的心态是:我不能很快找到我需要的信息,甚至找不到我所需要的信息,那这个网站在我的心里根本就没有体验度和口碑了,你要是没有就说明你不够专业。所以为了树立形象,也需要用到专业网站检索。

同时另外一点最大的好处就是,具有一套为您打造的专业网站搜索引擎,您的网站就不会被同类网站轻松模仿,这是因为一般的模仿者是不会有实力开发或购买一套专业的搜索引擎系统的。这样自己作为先驱者积累出来的用户、技术、资金上面的优势能够体现出来,让您在互联网上能够抓住更多客户的心。

7.原理概述

"懒汉搜索"引擎通过嵌入到企业网站中,具有较好的移植性,可通过远程的安装调试,使系统正常并良好的运行。不会影响企业原有的网站运行,原有网 站基本上也不需要改动。

"懒汉搜索"引擎不需要中转数据库,站内数据库的数据加载自动完成,同 时在后期具备实时性的主动更新方式,可以设置更新时间少于10 分钟。同时维护非常简单,安装完之后,所有 *** 作(包括数据初始化、动态更新等)会自动完成,每天都会生成统计报表,不需要人工干预,整个过程简单,方便。

您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!信息检索方法包括:普通法、追溯法和分段法。1、普通法是利用书目、文摘、索引等检索工具进行文献资料查找的方法。运用这种方法的关键在于熟悉各种检索工具的性质、特点和查找过程,从不同角度查找。普通法又可分为顺检法和倒检法。2、追溯法是利用已有文献所附的参考文献不断追踪查找的方法,在没有检索工具或检索工具不全时,此法可获得针对性很强的资料,查准率较高,查全率较差。3、分段法是追溯法和普通法的综合,它将两种方法分期、分段交替使用,直至查到所需资料为止。扩展资料检索原因信息检索是获取知识的捷径美国普林斯顿大学物理系一个年轻大学生名叫约瀚·菲利普,在图书馆里借阅有关公开资料,仅用四个月时间,就画出一张制造原子d的设计图。他设计的原子d,体积小(棒球大小)、重量轻(7.5公斤)、威力大(相当广岛原子d3/4的威力),造价低(当时仅需两千美元),致使一些国家(法国、巴基斯坦等)纷纷致函美国大使馆,争相购买他的设计拷贝。二十世纪七十年代,美国核专家泰勒收到一份题为《制造核d的方法》的报告,他被报告精湛的技术设计所吸引,惊叹地说:“至今我看到的报告中,它是最详细、最全面的一份。”但使他更为惊异的是,这份报告竟出于哈佛大学经济专业的青年学生之手,而这个四百多页的技术报告的全部信息来源又都是从图书馆那些极为平常的、完全公开的图书资料中所获得的。参考资料来源:百度百科——信息检索,非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10030894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存