CN101887417A - 一种搜索方法 - Google Patents
一种搜索方法 Download PDFInfo
- Publication number
- CN101887417A CN101887417A CN200910051093XA CN200910051093A CN101887417A CN 101887417 A CN101887417 A CN 101887417A CN 200910051093X A CN200910051093X A CN 200910051093XA CN 200910051093 A CN200910051093 A CN 200910051093A CN 101887417 A CN101887417 A CN 101887417A
- Authority
- CN
- China
- Prior art keywords
- module
- index
- search
- data
- searching method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种搜索方法,包括搜索管理模块索引模块、对外服务模块、分词模块、索引定期更新模块、其特征在于搜索管理模块与索引模块、对外服务模块、分词模块通信处理搜索的数据,搜索定时更新模块定期更新索引模块中的数据。本发明有效地提高了检索效率,利用搜索的结果排名实现了在线状态的用户排在前面以方便寻找,实现了搜索更新解决用户状态索引频繁跟新时降低系统的索引效率。
Description
技术领域
本发明涉及一种搜索方法,尤其涉及反向搜索,搜索排名,索引更新技术领域。
背景技术
XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。
在这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。
IM是什么意思呢?IM是Instant Messaging的缩写,IM的中文意思是即时信息,指可以在线实时交流的工具,也就是通常所说的在线聊天工具,如QQ、MSN、新浪UC、TQ等都是互联网用户常用的IM聊天软件。后附常见即时信息IM软件下载地址即时信息(IM)早在1996年就开始流行了,当时最著名的即时通信工具为ICQ。ICQ最初由三个以色列人所开发,1998年被美国在线收购,现在仍然是最受欢迎的即时聊天工具之一。到2003年底,全球的ICQ用户数量超过15亿,其中60%以上分布在美国之外的世界各国。
IM即时信息有针对个人应用和企业应用的不同类型,目前占主导地位的是个人聊天工具,并且大多是免费服务的。目前常用的即时信息工具有国外的ICQ、Yahoo信使(Yahoo!Messenger)、MSN信使(MSNMessenger)、AOL即时信使(AIM)等,以及国内网站提供的即时信息聊天工具如腾迅公司的QQ、新浪UC等。此外,一个网站内部的在线用户之间的实时交流也是即时信息的一种具体应用形式。
搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务的系统。从使用者的角度看,搜索引擎提供一个包含搜索框的页面,在搜索框输入词语,通过浏览器提交给搜索引擎后,搜索引擎就会返回跟用户输入的内容相关的信息列表。搜索引擎指自动从英特网(Internet)搜集信息,经过一定整理以後,提供给用户进行查询的系统。用比喻的手法来说,英特网上的信息浩瀚万千,而且毫无秩序,所有的信息象汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为你绘制一幅一目了然的信息地图,供你随时查阅。在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了。
现代意义上的搜索引擎的祖先,是1990年由蒙特利尔大学学生Alan Emtage发明的Archie。虽然当时World Wide Web还未出现,但网络中文件传输还是相当频繁的,而且由于大量的文件散布在各个分散的FTP主机中,查询起来非常不便,因此Alan Emtage想到了开发一个可以以文件名查找文件的系统,于是便有了Archie。
Archie工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。由于Archie深受用户欢迎,受其启发,美国内华达SystemComputing Services大学于1993年开发了另一个与之非常相似的搜索工具,不过此时的搜索工具除了索引文件外,已能检索网页。
当时,“机器人”一词在编程者中十分流行。电脑“机器人”(ComputerRobot)是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。
世界上第一个用于监测互联网发展规模的“机器人”程序是MatthewGray开发的World wide Web Wanderer。刚开始它只用来统计互联网上的服务器数量,后来则发展为能够检索网站域名。
与Wanderer相对应,Martin Koster于1993年10月创建了ALIWEB,它是Archie的HTTP版本。ALIWEB不使用“机器人”程序,而是靠网站主动提交信息来建立自己的链接索引,类似于现在我们熟知的Yahoo。
随着互联网的迅速发展,使得检索所有新出现的网页变得越来越困难,因此,在Matthew Gray的Wanderer基础上,一些编程者将传统的“蜘蛛”程序工作原理作了些改进。其设想是,既然所有网页都可能有连向其他网站的链接,那么从跟踪一个网站的链接开始,就有可能检索整个互联网。到1993年底,一些基于此原理的搜索引擎开始纷纷涌现,其中以JumpStation、The World Wide Web Worm(Goto的前身,也就是今天Overture),和Repository-Based Software Engineering(RBSE)spider最负盛名。
然而JumpStation和WWW Worm只是以搜索工具在数据库中找到匹配信息的先后次序排列搜索结果,因此毫无信息关联度可言。而RBSE是第一个在搜索结果排列中引入关键字串匹配程度概念的引擎。
最早现代意义上的搜索引擎出现于1994年7月。当时MichaelMauldin将John Leavitt的蜘蛛程序接入到其索引程序中,创建了大家现在熟知的Lycos。同年4月,斯坦福(Stanford)大学的两名博士生,David Filo和美籍华人杨致远(Gerry Yang)共同创办了超级目录索引Yahoo,并成功地使搜索引擎的概念深入人心。从此搜索引擎进入了高速发展时期。目前,互联网上有名有姓的搜索引擎已达数百家,其检索的信息量也与从前不可同日而语。比如最近风头正劲的Google,其数据库中存放的网页已达30亿之巨!
随着互联网规模的急剧膨胀,一家搜索引擎光靠自己单打独斗已无法适应目前的市场状况,因此现在搜索引擎之间开始出现了分工协作,并有了专业的搜索引擎技术和搜索数据库服务提供商。象国外的Inktomi(已被Yahoo收购),它本身并不是直接面向用户的搜索引擎,但向包括Overture(原GoTo,已被Yahoo收购)、LookSmart、MSN、HotBot等在内的其他搜索引擎提供全文网页搜索服务。国内的百度也属于这一类,搜狐和新浪用的就是它的技术。因此从这个意义上说,它们是搜索引擎的搜索引擎。
搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(FullText Search Engine)、目录索引类搜索引擎(Search Index/Directory)和元搜索引擎(Meta Search Engine)。
■全文搜索引擎
全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。
从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。
■目录索引
目录索引虽然有搜索功能,但在严格意义上算不上是真正的搜索引擎,仅仅是按目录分类的网站链接列表而已。用户完全可以不用进行关键词(Keywords)查询,仅靠分类目录也可找到需要的信息。目录索引中最具代表性的莫过于大名鼎鼎的Yahoo雅虎。其他著名的还有Open Directory Project(DMOZ)、LookSmart、About等。国内的搜狐、新浪、网易搜索也都属于这一类。
元搜索引擎(META Search Engine)
元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎中具代表性的有搜星搜索引擎。在搜索结果排列方面,有的直接按来源引擎排列搜索结果,如Dogpile,有的则按自定的规则将结果重新排列组合,如Vivisimo。
除上述三大类引擎外,还有以下几种非主流形式:
1、集合式搜索引擎:如HotBot在2002年底推出的引擎。该引擎类似META搜索引擎,但区别在于不是同时调用多个引擎进行搜索,而是由用户从提供的4个引擎当中选择,因此叫它“集合式”搜索引擎更确切些。
2、门户搜索引擎:如AOL Search、MSN Search等虽然提供搜索服务,但自身即没有分类目录也没有网页数据库,其搜索结果完全来自其他引擎。
3、免费链接列表(Free For All Links,简称FFA):这类网站一般只简单地滚动排列链接条目,少部分有简单的分类目录,不过规模比起Yahoo等目录索引来要小得多。
由于上述网站都为用户提供搜索查询服务,为方便起见,我们通常将其统称为搜索引擎。
全文搜索引擎
在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。
另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于近年来搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。
■目录索引
与全文搜索引擎相比,目录索引有许多不同之处。
首先,搜索引擎属于自动网站检索,而目录索引则完全依赖手工操作。用户提交网站后,目录编辑人员会亲自浏览你的网站,然后根据一套自定的评判标准甚至编辑人员的主是观印象,决定是否接纳你的网站。
其次,搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。尤其象Yahoo!这样的超级索引,登录更是困难。(由于登录Yahoo!的难度最大,而它又是商家网络营销必争之地,所以我们会在后面用专门的篇幅介绍登录Yahoo雅虎的技巧)
此外,在登录搜索引擎时,我们一般不用考虑网站的分类问题,而登录目录索引时则必须将网站放在一个最合适的目录(Directory)。
最后,搜索引擎中各网站的有关信息都是从用户网页中自动提取的,所以用户的角度看,我们拥有更多的自主权;而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。更有甚者,如果工作人员认为你提交网站的目录、网站信息不合适,他可以随时对其进行调整,当然事先是不会和你商量的。
目录索引,顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。
目前,搜索引擎与目录索引有相互融合渗透的趋势。原来一些纯粹的全文搜索引擎现在也提供目录搜索,如Google就借用Open Directory目录提供分类查询。而象Yahoo!这些老牌目录索引则通过与Google等搜索引擎合作扩大搜索范围。在默认搜索模式下,一些目录类搜索引擎首先返回的是自己目录中匹配的网站,如国内搜狐、新浪、网易等;而另外一些则默认的是网页搜索,如Yahoo。
中文分词和搜索引擎
众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我是一个学生。
中文分词技术
中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。
现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。
1、基于字符串匹配的分词方法
这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。
一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。
对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。
2、基于理解的分词方法
这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
3、基于统计的分词方法
从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
到底哪种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。笔者了解,海量科技的分词算法就采用“复方分词法”,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不同的问题。
分词中的难题
有了成熟的分词算法,是否就能容易的解决中文分词的问题呢?事实远非如此。中文是一种十分复杂的语言,让计算机理解中文语言更是困难。在中文分词过程中,有两大难题一直没有完全突破。
1、歧义识别
歧义是指同样的一句话,可能有两种或者更多的切分方法。例如:表面的,因为“表面”和“面的”都是词,那么这个短语就可以分成“表面的”和“表面的”。这种称为交叉歧义。像这种交叉歧义十分常见,前面举的“和服”的例子,其实就是因为交叉歧义引起的错误。“化妆和服装”可以分成“化妆和服装”或者“化妆和服装”。由于没有人的知识去理解,计算机很难知道到底哪个方案正确。
交叉歧义相对组合歧义来说是还算比较容易处理,组合歧义就必需根据整个句子来判断了。例如,在句子“这个门把手坏了”中,“把手”是个词,但在句子“请把手拿开”中,“把手”就不是一个词;在句子“将军任命了一名中将”中,“中将”是个词,但在句子“产量三年中将增长两倍”中,“中将”就不再是词。这些词计算机又如何去识别?
如果交叉歧义和组合歧义计算机都能解决的话,在歧义中还有一个难题,是真歧义。真歧义意思是给出一句话,由人去判断也不知道哪个应该是词,哪个应该不是词。例如:“乒乓球拍卖完了”,可以切分成“乒乓球拍卖完了”、也可切分成“乒乓球拍卖完了”,如果没有上下文其他的句子,恐怕谁也不知道“拍卖”在这里算不算一个词。
2、新词识别
新词,专业术语称为未登录词。也就是那些在字典中都没有收录过,但又确实能称为词的那些词。最典型的是人名,人可以很容易理解句子“王军虎去广州了”中,“王军虎”是个词,因为是一个人的名字,但要是让计算机去识别就困难了。如果把“王军虎”做为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增的人名,收录这些人名本身就是一项巨大的工程。即使这项工作可以完成,还是会存在问题,例如:在句子“王军虎头虎脑的”中,“王军虎”还能不能算词?
新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要。目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。
中文分词的应用
目前在自然语言处理技术中,中文处理技术比西文处理技术要落后很大一段距离,许多西文的处理方法中文不能直接采用,就是因为中文必需有分词这道工序。中文分词是其他中文信息处理的基础,搜索引擎只是中文分词的一个应用。其他的比如机器翻译(MT)、语音合成、自动分类、自动摘要、自动校对等等,都需要用到分词。因为中文需要分词,可能会影响一些研究,但同时也为一些企业带来机会,因为国外的计算机处理技术要想进入中国市场,首先也是要解决中文分词问题。在中文研究方面,相比外国人来说,中国人有十分明显的优势。
分词准确性对搜索引擎来说十分重要,但如果分词速度太慢,即使准确性再高,对于搜索引擎来说也是不可用的,因为搜索引擎需要处理数以亿计的网页,如果分词耗用的时间过长,会严重影响搜索引擎内容更新的速度。因此对于搜索引擎来说,分词的准确性和速度,二者都需要达到很高的要求。目前研究中文分词的大多是科研院校,清华、北大、中科院、北京语言学院、东北大学、IBM研究院、微软中国研究院等都有自己的研究队伍,而真正专业研究中文分词的商业公司除了海量科技以外,几乎没有了。科研院校研究的技术,大部分不能很快产品化,而一个专业公司的力量毕竟有限,看来中文分词技术要想更好的服务于更多的产品,还有很长一段路。
发明内容
本发明的目的在于针对以上传统技术的不足,提供一种搜索方法,利用反向搜索的方法提高检索效率,利用搜索的结果排名将在线状态的用户排在前面以方便寻找,利用搜索更新解决用户状态索引频繁跟新时降低系统的索引效率。
为了实现这一目的该方案主要由如下模块组成:
1、搜索管理模块:
主要负责与索引模块,对外服务模块,分词模块的信息交互,其包括启动模块,组建管理模块,配置信息模块,日志记录模块,状态查询模块。启动模块主要用于当用户需要搜索时,触发及启动搜索系统。组建管理模块主要用于用户搜索过程中对相关的搜索信息进行管理。配置信息模块主要用于对用户所要搜索的信息
2、索引模块:
整个系统的核心模块,包括建立索引模块,新老索引的整合模块,索引评分模块,排序模块,搜索模块。建立索引模块对要检索的数据建立索引,索引整合模块用于对新老索引整合,索引评分模块对索引评分,排序模块用于对索引排序,搜索模块对索引进行搜索。
3、索引定期更新模块:
包括定时器模块,删除数据识别模块,更新数据识别模块,新增数据模块。
定时去更新索引,整合到索引中去,并且快速的删除、更新数据,提高索引数据的时效性。
4、对外服务模块:
包括HESSION接口模块,HTTP对外接口模块,数据解释模块,返回结果整合模块。。
5、分词模块:
包括词典模块,词典索引模块,预分词模块。
主要提供搜索前的分词功能,采用一些预处理方式,让分词更快、更智能化。
a.反向索引
解决问题:
提高检索效率
详细介绍:
为了保证高并发量下,对海量数据的检索效率。我们对所有的文章建立了索引。
和传统的索引方式不同,我们使用了反向索引。反向索引是一种存储了词语与出现了该词语的文章的列表的数据结构。
其中词语的列表是经过排序的。这个可以快速找出该词语对应的文章列表。
b.搜索结果排名
解决问题:
搜索结果排名
详细介绍:
用户在线情况,如果用户在线则排在前面。
内容相关度,使用自然语言分析技术分析搜索结果与用户输入的相关度,相关度越高,排名越靠前。文章相关度以用户输入的关键字在文章中的出现次数来衡量。
c.索引更新
解决问题:
索引的频繁跟新效率
详细介绍:
由于用户在线状态是频繁更新的,且文章也是会经常有增、删、改的操作。为了搜索结果的准确,必须经常更新索引。使用了增量索引(只重建发生变化的文章的索引)的技术,大大提高了索引更新的效率。
本发明有效地提高了检索效率,利用搜索的结果排名实现了在线状态的用户排在前面以方便寻找,实现了搜索更新解决用户状态索引频繁跟新时降低系统的索引效率。
附图说明
图1为一种搜索方法的结构模块图;
图2为一种搜索方法的业务流程图;
具体实施方式
为了实现该系统,系统由:
1、搜索管理模块:
主要负责与索引模块,对外服务模块,分词模块的信息交互,其包括启动模块,组建管理模块,配置信息模块,日志记录模块,状态查询模块。启动模块主要用于当用户需要搜索时,触发及启动搜索系统。组建管理模块主要用于用户搜索过程中对相关的搜索信息进行管理。配置信息模块主要用于对用户所要搜索的信息
2、索引模块:
整个系统的核心模块,包括建立索引模块,新老索引的整合模块,索引评分模块,排序模块,搜索模块。建立索引模块对要检索的数据建立索引,索引整合模块用于对新老索引整合,索引评分模块对索引评分,排序模块用于对索引排序,搜索模块对索引进行搜索。
3、索引定期更新模块:
包括定时器模块,删除数据识别模块,更新数据识别模块,新增数据模块。
定时去更新索引,整合到索引中去,并且快速的删除、更新数据,提高索引数据的时效性。
4、对外服务模块:
包括HESSION接口模块,HTTP对外接口模块,数据解释模块,返回结果整合模块。。
5、分词模块:包括词典模块,词典索引模块,预分词模块。主要提供搜索前的分词功能,采用一些预处理方式,让分词更快、更智能化。
组成(如附图1)。
该系统的详细业务流程如下:
用户输入要搜索的数据,系统接收到用户输入的数据后把数据分成若干个关键词,系统判断是否有下一个未被搜索的关键词?如果有则系统判断是否把该关键词标记为已搜索,该关键词是否有对应的文章?如果有则记录文章出现该关键词的次数,同时把该文章加入搜索结果列表中。如果没有把关键字标记为已搜索同时该关键词没有对应的文章则返回继续判断是否有下一个未被搜索的关键?如果没有下一个未被搜索的关键词则根据文章里含有关键字的个数,给文章评分,而后系统判断用户是否在线?如果用户在线则给对应的文章加分,系统再根据文章的得分,对文章进行挂名。如果用户没有在线系统则直接根据文章的得分对文章进行挂名。最后把文章列表显示给用户。(如附图2)
为了保证高并发量下,对海量数据的检索效率。我们对所有的文章建立了索引。
和传统的索引方式不同,我们使用了反向索引。反向索引是一种存储了词语与出现了该词语的文章的列表的数据结构。下面举例说明:
假设有以下三篇文章:
文章编号 文章内容
1 网络机器人
2 机器人是什么
3 网络是谁
建立后的索引如下:
什么:2
是:2,3
网络:1,3
机器人:1,2
谁:3
其中词语的列表是经过排序的。这个可以快速找出该词语对应的文章列表。
Claims (9)
1.一种搜索方法,包括搜索管理模块索引模块、对外服务模块、分词模块、索引定期更新模块、其特征在于搜索管理模块与索引模块、对外服务模块、分词模块通信处理搜索的数据,搜索定时更新模块定期更新索引模块中的数据。
2.根据权利要求1一种搜索方法,所述搜索管理模块,其特征在于包括启用模块、组建管理模块、配置信息模块、日志记录模块、状态查询模块,用于索引系统的启动,组建、配置、记录、查询要搜索的数据。
3.根据权利要求1一种搜索方法,所述索引模块,其特征在于包括,建立索引模块、索引合并模块、索引评分模块、索引排序模块、索引搜索模块。
4.根据权利要求1一种搜索方法,所述对外服务模块,其特征在于包括HESSION接口模块、HTTP对外接口模块、数据解释模块、返回结果整合模块。
5.根据权利要求1一种搜索方法,所述分词模块,其特征在于包括词典模块、词典索引模块、预分词模块。
6.根据权利要求1一种搜索方法,所述索引定期更新模块,其特征在于包括定时器模块、删除数据识别模块、更新数据识别模块、新增数据模块。
7.根据权利要求1一种搜索方法,所述索引模块,其特征在于接收搜索管理模块传送来的数据,把数据建立、合并、评分、排序、搜索索引。
8.根据权利要求1一种搜索方法,所述对外服务模块,其特征在于通过HESSION接口和HTTP接口对外数据解释服务和返回结果整合。
9.根据权利要求1一种搜索方法,所述索引定期更新模块,其特征在于索引模块操作定时和识别过期的数据,识别和更新和新增数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910051093XA CN101887417A (zh) | 2009-05-13 | 2009-05-13 | 一种搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910051093XA CN101887417A (zh) | 2009-05-13 | 2009-05-13 | 一种搜索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101887417A true CN101887417A (zh) | 2010-11-17 |
Family
ID=43073343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910051093XA Pending CN101887417A (zh) | 2009-05-13 | 2009-05-13 | 一种搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101887417A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819592A (zh) * | 2012-08-08 | 2012-12-12 | 河海大学 | 一种基于Lucene的桌面搜索系统及方法 |
CN104504144A (zh) * | 2015-01-05 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种获取索引相关信息的方法和设备 |
WO2015096082A1 (zh) * | 2013-12-26 | 2015-07-02 | 陶德龙 | 一种利用关键链接执行反向搜索的方法及装置 |
CN105893626A (zh) * | 2016-05-10 | 2016-08-24 | 中广核工程有限公司 | 一种用于核电工程的索引库创建方法及其采用其方法的索引系统 |
CN106484672A (zh) * | 2015-08-27 | 2017-03-08 | 北大方正集团有限公司 | 词汇识别方法和词汇识别系统 |
CN107423336A (zh) * | 2017-04-27 | 2017-12-01 | 努比亚技术有限公司 | 一种数据处理方法、装置及计算机存储介质 |
CN107992565A (zh) * | 2017-11-29 | 2018-05-04 | 北京锐安科技有限公司 | 一种优化搜索引擎的方法及系统 |
CN108255829A (zh) * | 2016-12-28 | 2018-07-06 | 腾讯科技(北京)有限公司 | 数据查找方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1822005A (zh) * | 2006-04-07 | 2006-08-23 | 张天山 | 基于网站自动生成和搜索引擎的信息推送系统及方法 |
CN101320373A (zh) * | 2008-06-13 | 2008-12-10 | 华中科技大学 | 网站支撑数据库安全搜索引擎系统 |
-
2009
- 2009-05-13 CN CN200910051093XA patent/CN101887417A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1822005A (zh) * | 2006-04-07 | 2006-08-23 | 张天山 | 基于网站自动生成和搜索引擎的信息推送系统及方法 |
CN101320373A (zh) * | 2008-06-13 | 2008-12-10 | 华中科技大学 | 网站支撑数据库安全搜索引擎系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819592A (zh) * | 2012-08-08 | 2012-12-12 | 河海大学 | 一种基于Lucene的桌面搜索系统及方法 |
CN102819592B (zh) * | 2012-08-08 | 2015-06-03 | 河海大学 | 一种基于Lucene的桌面搜索系统及方法 |
WO2015096082A1 (zh) * | 2013-12-26 | 2015-07-02 | 陶德龙 | 一种利用关键链接执行反向搜索的方法及装置 |
CN104504144A (zh) * | 2015-01-05 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种获取索引相关信息的方法和设备 |
CN106484672A (zh) * | 2015-08-27 | 2017-03-08 | 北大方正集团有限公司 | 词汇识别方法和词汇识别系统 |
CN105893626A (zh) * | 2016-05-10 | 2016-08-24 | 中广核工程有限公司 | 一种用于核电工程的索引库创建方法及其采用其方法的索引系统 |
CN108255829A (zh) * | 2016-12-28 | 2018-07-06 | 腾讯科技(北京)有限公司 | 数据查找方法及装置 |
CN108255829B (zh) * | 2016-12-28 | 2021-10-19 | 腾讯科技(北京)有限公司 | 数据查找方法及装置 |
CN107423336A (zh) * | 2017-04-27 | 2017-12-01 | 努比亚技术有限公司 | 一种数据处理方法、装置及计算机存储介质 |
CN107423336B (zh) * | 2017-04-27 | 2021-01-15 | 努比亚技术有限公司 | 一种数据处理方法、装置及计算机存储介质 |
CN107992565A (zh) * | 2017-11-29 | 2018-05-04 | 北京锐安科技有限公司 | 一种优化搜索引擎的方法及系统 |
CN107992565B (zh) * | 2017-11-29 | 2020-11-03 | 北京锐安科技有限公司 | 一种优化搜索引擎的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122443B (zh) | 一种基于Spark SQL的分布式全文检索系统及方法 | |
Madhavan et al. | Web-scale data integration: You can only afford to pay as you go | |
US6094649A (en) | Keyword searches of structured databases | |
US6321228B1 (en) | Internet search system for retrieving selected results from a previous search | |
CN101887417A (zh) | 一种搜索方法 | |
US20100037161A1 (en) | System and method of applying globally unique identifiers to relate distributed data sources | |
US20070136276A1 (en) | Method, system and software product for locating documents of interest | |
Tari et al. | Incremental information extraction using relational databases | |
CN101888345A (zh) | 一种通过即时通讯工具实现在线用户搜索的方法 | |
CN101393565A (zh) | 基于本体的面向虚拟博物馆的搜索方法 | |
Zhao et al. | Topic-centric and semantic-aware retrieval system for internet of things | |
Richards et al. | The Archaeology Data Service and the Archaeotools project: faceted classification and natural language processing | |
JP4796538B2 (ja) | コメントデータを関連付ける方法 | |
CN103942268A (zh) | 搜索与应用相结合的方法、设备以及应用接口 | |
Madhavan et al. | Structured data meets the Web: a few observations. | |
Cafarella et al. | Data management projects at Google | |
Cheng et al. | MISDA: web services discovery approach based on mining interface semantics | |
Zacharias et al. | SOBOLEO--Social Bookmarking and Lighweight Engineering of Ontologies. | |
JP4469432B2 (ja) | インターネット情報処理装置、インターネット情報処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2004310561A (ja) | 情報検索方法、情報検索システム及び検索サーバ | |
Yerma et al. | Updated page rank of dynamically generated research authors' pages: A new idea | |
Liu et al. | A query suggestion method based on random walk and topic concepts | |
JP3838904B2 (ja) | 辞書装置及び自然言語処理システム | |
Tari et al. | Parse tree database for information extraction | |
Veda et al. | Personal information systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20101117 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |