基于搜索引擎的文档索引方法、数据查询方法及服务器转让专利

申请号 : CN200910151487.2

文献号 : CN101963965B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 魏磊沈加翔

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本申请实施例公开了基于搜索引擎的文档索引方法、数据查询方法及服务器,所述文档索引方法包括:获取待索引的文档,并对所述文档进行分词操作得到一元分词;判断每个一元分词是否为过滤字,若所述一元分词是过滤字,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,对所述多元分词建立索引;若所述一元分词不是过滤字,则直接对所述一元分词建立索引。本申请实施例中在进行索引或查询时,将作为高频字的一元分词与其相邻的至少一个一元分词组成多元分词,以保证不会因为对高频字进行索引而导致查询时浪费搜索引擎的资源,并且也不会因为跳过对高频字的索引而导致查询结果不准确。

权利要求 :

1.一种基于搜索引擎的文档索引方法,其特征在于,包括:获取待索引的文档,并对所述文档进行分词操作得到一元分词;

判断每个一元分词是否为过滤字,若所述一元分词是过滤字,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,对所述多元分词建立索引;所述过滤字是搜索引擎在查询时会直接忽略不查的高频字;

若所述一元分词不是过滤字,则直接对所述一元分词建立索引。

2.根据权利要求1所述的方法,其特征在于,还包括:预先设置过滤字列表。

3.根据权利要求2所述的方法,其特征在于,所述获取待索引的文档之前还包括:加载所述过滤字列表。

4.根据权利要求3所述的方法,其特征在于,所述判断每个一元分词是否为过滤字包括:遍历所述一元分词;

通过查找所述过滤字列表判断每个一元分词是否为过滤字。

5.根据权利要求1所述的方法,其特征在于,所述将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词包括:将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词。

6.根据权利要求5所述的方法,其特征在于,所述将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词包括:当所述一元分词是所述文档中的第一个一元分词时,将所述一元分词与其后一个一元分词组成二元分词;

当所述一元分词是所述文档中的最后一个一元分词时,将所述一元分词与其前一个一元分词组成二元分词;

当所述一元分词不是所述文档中的第一个一元分词和最后一个一元分词时,将所述一元分词与其前一个一元分词和后一个一元分词分别组成二元分词。

7.一种基于搜索引擎的数据查询方法,其特征在于,所述方法应用如权利要求1所述文档索引方法所建立的索引,包括:获取待查询的数据,并对所述数据进行分词操作得到一元分词;

判断每个一元分词是否为过滤字,若所述一元分词是过滤字,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,根据所述多元分词查找所述索引,若所述一元分词不是过滤字,则根据所述一元分词查找所述索引;所述过滤字是搜索引擎在查询时会直接忽略不查的高频字;

将查找所述索引后得到的查询结果进行合并。

8.根据权利要求7所述的方法,其特征在于,所述获取待查询数据之前,还包括:加载预先设置的过滤字列表。

9.根据权利要求8所述的方法,其特征在于,所述判断每个一元分词是否为过滤字,包括:遍历所述一元分词;

通过查找所述过滤字列表判断每个一元分词是否为过滤字。

10.根据权利要求7所述的方法,其特征在于,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词包括:将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词。

11.根据权利要求10所述的方法,其特征在于,所述将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词包括:当所述一元分词是所述数据中的第一个一元分词时,将所述一元分词与其后一个一元分词组成二元分词;

当所述一元分词不是所述数据中的第一个一元分词时,将所述一元分词与其前一个一元分词或后一个一元分词组成二元分词。

12.一种基于搜索引擎的文档索引服务器,其特征在于,包括:获取单元,用于获取待索引的文档;

分词单元,用于对所述获取单元获取的文档进行分词操作得到一元分词;

判断单元,用于判断每个一元分词是否为过滤字;所述过滤字是搜索引擎在查询时会直接忽略不查的高频字;

索引单元,用于当所述判断单元判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,对所述多元分词建立索引,当所述判断单元判断所述一元分词不是过滤字时,则直接对所述一元分词建立索引。

13.根据权利要求12所述的服务器,其特征在于,还包括:预置单元,用于预先设置过滤字列表。

14.根据权利要求13所述的服务器,其特征在于,还包括:加载单元,用于所述获取单元获取待索引的文档之前,加载所述过滤字列表。

15.根据权利要14所述的服务器,其特征在于,所述判断单元包括:遍历分词单元,用于遍历所述一元分词;

查找过滤字单元,用于通过查找所述过滤字列表判断每个一元分词是否为过滤字。

16.一种基于搜索引擎的数据查询服务器,其特征在于,所述服务器应用如权利要求

12所述文档索引服务器所建立的索引,包括:

获取单元,用于获取待查询的数据;

分词单元,用于对所述获取单元获取的数据进行分词操作得到一元分词;

判断单元,用于判断每个一元分词是否为过滤字;所述过滤字是搜索引擎在查询时会直接忽略不查的高频字;

查找单元,用于当所述判断单元判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,根据所述多元分词查找所述索引,当所述判断单元判断所述一元分词不是过滤字时,则根据所述一元分词查找所述索引;

合并单元,用于将所述查找单元查找所述索引后得到的查询结果进行合并。

17.根据权利要求16所述的服务器,其特征在于,还包括:加载单元,用于所述获取单元获取待查询的数据之前,加载预先设置的过滤字列表。

18.根据权利要求16所述的服务器,其特征在于,所述判断单元包括:遍历分词单元,用于遍历所述一元分词;

查找过滤字单元,用于通过查找所述过滤字列表判断每个一元分词是否为过滤字。

说明书 :

基于搜索引擎的文档索引方法、数据查询方法及服务器

技术领域

[0001] 本申请涉及搜索引擎技术领域,尤其涉及一种基于搜索引擎的文档索引方法、数据查询方法及服务器。

背景技术

[0002] 搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,并将处理后的信息显示给用户,为用户提供检索服务的系统。
[0003] 搜索引擎的工作原理如下:首先,进行网页抓取,每个独立的搜索引擎都有自己的网页抓取程序,俗称网络蜘蛛(Spider),Spider顺着网页中的超链接,连续地抓取网页,被抓取的网页被称之为网页快照,由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页;其次,进行网页处理,搜索引擎抓到网页后,提取关键词,建立索引文件;才能提供检索服务;最后,提供检索服务,用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页,为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。
[0004] 对于中文搜索引擎来说,在进行索引和查询时,都需要进行中文分词的操作,其中常用的中文分词方法为一元分词法,即将句子中的每个汉字作为一个单位,假设待索引的句子为“中国股市”,则经过一元分词后的结果为四个单字,分别为“中”、“国”、“股”、“市”。以“市”字为例,在索引了600万个文档的单台搜索引擎服务器内,“市”字出现的概率高达
93%,因此在根据一元分词划分结果查询“中国股市”时,对于“市”字的查询将极大消耗搜索引擎服务器的资源,因此在搜索引擎内,预先保存了高频字列表,对于高频字采用过滤的方式不进行查询,因此搜索“中国股市”就简化为搜索“中国股”,以跳过对高频字“市”的查询。
[0005] 在对现有技术的研究和实践过程中,发明人发现现有技术中存在以下问题:在采用一元分词法进行索引和查询时,虽然通过预先设置的高频字列表跳过了对高频字的查询,但是却会导致查询结果不准确。仍然以查询“中国股市”为例,虽然跳过了“市”字的查询,但是返回的查询结果中将包括大量的“中国股民”、“中国股票”等包含“中国股”的查询结果,因此导致查询结果与需要查询的内容不相符。

发明内容

[0006] 本申请实施例的目的是提供一种基于搜索引擎的文档索引方法、数据查询方法及服务器,以解决现有通过高频词过滤方式进行索引和查询,导致查询结果不准确的问题。
[0007] 为解决上述技术问题,本申请实施例提供了一种基于搜索引擎的文档索引方法,是这样实现的:
[0008] 一种基于搜索引擎的文档索引方法,包括:
[0009] 获取待索引的文档,并对所述文档进行分词操作得到一元分词;
[0010] 判断每个一元分词是否为过滤字,若所述一元分词是过滤字,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,对所述多元分词建立索引;
[0011] 若所述一元分词不是过滤字,则直接对所述一元分词建立索引。
[0012] 为解决上述技术问题,本申请实施例提供了一种基于搜索引擎的数据查询方法,是这样实现的:
[0013] 一种基于搜索引擎的数据查询方法,所述数据查询方法应用所述文档索引方法所建立的索引,包括:
[0014] 获取待查询的数据,并对所述数据进行分词操作得到一元分词;
[0015] 判断每个一元分词是否为过滤字,若所述一元分词是过滤字,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,根据所述多元分词查找所述索引,若所述一元分词不是过滤字,则根据所述一元分词查找所述索引;
[0016] 将查找所述索引后得到的查询结果进行合并。
[0017] 为解决上述技术问题,本申请实施例还提供了一种基于搜索引擎的文档索引服务器,是这样实现的:
[0018] 一种基于搜索引擎的文档索引服务器,包括:
[0019] 获取单元,用于获取待索引的文档;
[0020] 分词单元,用于对所述获取单元获取的文档进行分词操作得到一元分词;
[0021] 判断单元,用于判断每个一元分词是否为过滤字;
[0022] 索引单元,用于当所述判断单元判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,对所述多元分词建立索引,当所述判断单元判断所述一元分词不是过滤字时,则直接对所述一元分词建立索引。
[0023] 为解决上述技术问题,本申请实施例还提供了一种基于搜索引擎的数据查询服务器,是这样实现的:
[0024] 一种基于搜索引擎的数据查询服务器,所述数据查询服务器应用所述文档索引服务器所建立的索引,包括:
[0025] 获取单元,用于获取待查询的数据;
[0026] 分词单元,用于对所述获取单元获取的数据进行分词操作得到一元分词;
[0027] 判断单元,用于判断每个一元分词是否为过滤字;
[0028] 查找单元,用于当所述判断单元判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,根据所述多元分词查找所述索引,当所述判断单元判断所述一元分词不是过滤字时,则根据所述一元分词查找所述索引;
[0029] 合并单元,用于将所述查找单元查找所述索引后得到的查询结果进行合并。
[0030] 可见,本申请实施例中在进行索引或查询时,将作为高频字的一元分词与其相邻的至少一个一元分词组成多元分词,以保证不会因为对高频字进行索引而导致查询时浪费搜索引擎的资源,并且也不会因为跳过对高频字的索引而导致查询结果不准确;以查询“中国股市”为例,本申请实施例将以分词“中”、“国”、“股”、“股市”进行查询,由于分词“股市”的命中率远低于高频字“市”的命中率,并且也不会由于跳过对“市”的查询而查询到除“股市”以外的分词,因此在降低搜索引擎资源消耗的同时可以返回正确的查询结果,由此提高了搜索引擎的性能。

附图说明

[0031] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0032] 图1为本申请基于搜索引擎的文档索引方法的第一实施例流程图;
[0033] 图2为本申请基于搜索引擎的文档索引方法的第二实施例流程图;
[0034] 图3为本申请基于搜索引擎的数据查询方法的第一实施例流程图;
[0035] 图4为本申请基于搜索引擎的数据查询方法的第二实施例流程图;
[0036] 图5为本申请基于搜索引擎的文档索引服务器的第一实施例框图;
[0037] 图6为本申请基于搜索引擎的文档索引服务器的第二实施例框图;
[0038] 图7为本申请基于搜索引擎的数据查询服务器的第一实施例框图;
[0039] 图8为本申请基于搜索引擎的数据查询服务器的第二实施例框图。

具体实施方式

[0040] 本申请实施例提供一种基于搜索引擎的文档索引方法、数据查询方法及服务器。
[0041] 为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
[0042] 搜索引擎按照功能划分,通常由搜索模块、索引模块、查询模块和用户接口模块四个部分组成。其中,搜索模块的功能是通过Spider在互联网中漫游,发现和搜集网页信息;索引模块的功能是从搜索模块搜索到的网页中抽取出索引项,用于表示文档以及生成文档库的索引表;查询模块的功能是根据用户的查询在索引库中检索文档,并对将要输出的结果进行排序,按照用户的查询需求合理反馈信息;用户接口模块的作用是接收用户的查询请求,并向用户返回查询结果。本申请实施例主要描述搜索引擎中的索引功能和查询功能的实现过程。
[0043] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0044] 参见图1,为本申请基于搜索引擎的文档索引方法的第一实施例流程图:
[0045] 步骤101:获取待索引的文档。
[0046] 本申请实施例中待索引的文档通常为通过搜索引擎的搜索功能从互联网中搜集的网页信息,这些网页信息被保存在搜索引擎服务器的存储空间内(例如磁盘),当搜索引擎服务器需要进行索引时,则从存储空间内获取还未索引过的网页信息。
[0047] 步骤102:对待索引的文档进行分词操作得到一元分词。
[0048] 需要说明的是,如果待索引的文档中只有一个字,并且该字是高频字,则不再为该文档建立索引。
[0049] 步骤103:判断每个一元分词是否为过滤字,若是,则执行步骤104;否则,执行步骤105。
[0050] 其中,过滤字就是搜索引擎在查询时会直接忽略不查的高频字,这些高频字由于在文档中出现的频率较高,因此查询时会耗费大量系统资源,所以通常事先通过统计等手段在索引前就确定好过滤字列表,用于后续查询时跳过对这些高频字的查询。例如,根据统计结果,“中国股市”中的“市”为高频字,因此可以将“市”写入过滤字列表。
[0051] 通常对文档分词后得到的一元分词结果中包含若干个一元分词,因此顺序对每个一元分词是否为过滤字进行判断。
[0052] 步骤104:将一元分词和与该一元分词顺序相邻的至少一个一元分词组成多元分词,对该多元分词建立索引,结束当前流程。
[0053] 其中,优选的,将一元分词和与该一元分词顺序相邻的一元分词组成二元分词,对于判断为高频字的当前一元分词,如果该一元分词是文档中的第一个一元分词时,则将该一元分词与其后一个一元分词组成二元分词;如果该一元分词是文档中的最后一个一元分词时,则将该一元分词与其前一个一元分词组成二元分词;如果该一元分词不是该文档中的第一个一元分词和最后一个一元分词,则将该一元分词与其前一个一元分词和后一个一元分词分别组成二元分词。
[0054] 对于按照上述方式组成的二元分词建立索引,由上述描述可知,两个相邻的一元分词组成一个二元分词,例如,“我”和“的”是两个一元分词,则将它们结合起来组成“我的”就是二元分词。
[0055] 同理,多元分词指至少两个相邻的一元分词组成一个多元分词,除了上述二元分词外,还有三元分词、四元分词等,例如,由“中”、“国”和“人”组成一个三元分词“中国人”。
[0056] 步骤105:直接对该一元分词建立索引,结束当前流程。
[0057] 对于不是高频字的一元分词,则按照现有技术中的方式直接对其建立索引。
[0058] 参见图2,为本申请基于搜索引擎的文档索引方法的第二实施例流程图,该实施例以多元分词为二元分词为例,详细描述了文档索引过程:
[0059] 步骤201:预先设置过滤字列表。
[0060] 过滤字列表的设置可以通过对互联网中大量文档的统计计算得到。例如,假设对600万个文档分别进行一元分词,然后计算这些一元分词在每个文档中出现的次数,最后对这些一元分词出现的次数进行排序,取排序最高(例如前10个)的一元分词作为高频字,构建高频字列表。
[0061] 步骤202:加载过滤字列表后,获取待索引的文档。
[0062] 步骤203:对待索引的文档进行分词操作得到一元分词。
[0063] 步骤204:遍历所述一元分词。
[0064] 遍历一元分词,即按照文档的分词结果顺序获取每一个一元分词,并对获取的每一个一元分词执行后续是否为过滤字的判断步骤。
[0065] 步骤205:通过查找过滤字列表判断当前一元分词是否为过滤字,若是,则执行步骤206;否则,执行步骤208。
[0066] 步骤206:将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词。
[0067] 步骤207:对二元分词建立索引,执行步骤209。
[0068] 步骤208:直接对一元分词建立索引。
[0069] 步骤209:判断是否遍历完所述一元分词,若是,则结束当前流程;否则,返回步骤204。
[0070] 上述本申请基于搜索引擎的文档索引方法的第二实施例中,步骤204至步骤208可以采用如下示例的伪码实现:
[0071] Token token=getCurrentToken(); //获取当前分词
[0072] If(isFreqWord(token)){ //如果当前是高频字
[0073] Token token2=mergeToken(preToken,token);//和前一个分词组成新单词[0074] doTokenIndex(token2);//建索引
[0075] Token token3=mergeToken(lastToken,token);//和后一个分词组成新单词
[0076] doTokenIndex(token3);//建索引
[0077] }
[0078] else
[0079] doTokenIndex(token);//如果不是高频字,则直接建索引
[0080] 在搜索引擎中应用上述文档索引方法实施例建立的索引中,没有为高频字建立的索引,但包括了对高频字与其相邻的字组合而成的二元分词建立的索引,为后续数据查询的准确性提供了保证。
[0081] 与本申请基于搜索引擎的文档索引方法的实施例相对应,本申请还提供了基于搜索引擎的数据查询方法的实施例,所述数据查询方法的实施例通过应用所述文档索引方法的实施例所建立的索引进行数据查询。
[0082] 参见图3,为本申请基于搜索引擎的数据查询方法的第一实施例流程图;
[0083] 步骤301:获取待查询的数据。
[0084] 待查询的数据通常为互联网用户从网站前端输入的需要查询的数据,由搜索引擎接收该输入的查询数据。
[0085] 步骤302:对待查询的数据进行分词操作得到一元分词。
[0086] 步骤303:判断每个一元分词是否为过滤字,若是,则执行步骤304;否则,执行步骤305。
[0087] 通常对数据分词后得到的一元分词结果中包含若干个一元分词,因此顺序对每个一元分词是否为过滤字进行判断。
[0088] 步骤304:将一元分词和与该一元分词顺序相邻的至少一个一元分词组成多元分词,根据该多元分词查找建立的索引,执行步骤306。
[0089] 其中,优选的,将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词,对于判断为高频字的当前一元分词,如果该一元分词是待查询数据中的第一个一元分词,则将该一元分词与其后一个一元分词组成二元分词;如果该一元分词不是待查询数据中的第一个一元分词,则将该一元分词与其前一个一元分词或后一个一元分词组成二元分词。
[0090] 步骤305:根据该一元分词查找建立的索引。
[0091] 步骤306:将查找索引后得到的查询结果进行合并,结束当前流程。
[0092] 参见图4,为本申请基于搜索引擎的数据查询方法的第二实施例流程图,该实施例以多元分词为二元分词为例,详细描述了数据查询过程:
[0093] 步骤401:加载预先设置的过滤字列表后,获取待查询的数据。
[0094] 步骤402:对待查询的数据进行分词操作得到一元分词。
[0095] 步骤403:遍历所述一元分词。
[0096] 遍历一元分词,即按照待查询数据的分词结果顺序获取每一个一元分词,并对获取的一元分词执行后续是否为过滤字的判断步骤。
[0097] 步骤404:通过查找过滤字列表判断当前一元分词是否为过滤字,若是,则执行步骤405;否则,执行步骤407。
[0098] 步骤405:将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词。
[0099] 步骤406:根据该二元分词查找建立的索引,执行步骤208。
[0100] 步骤407:根据该一元分词查找建立的索引。
[0101] 步骤408:判断是否遍历完所述一元分词,若是,则执行步骤409;否则,返回步骤403。
[0102] 步骤409:将查找索引后得到的所有查询结果进行合并,结束当前流程。
[0103] 对于根据每个分词查询索引后得到的结果进行合并,进一步还可以根据预先设置的条件(例如返回20个结果)向用户返回最终显示的查询结果,此处与现有技术一致,在此不再赘述。
[0104] 上述本申请基于搜索引擎的数据查询方法的第二实施例中,步骤403至步骤407可以采用如下示例的伪码实现:
[0105] Token token=getCurrentToken(); //获取当前分词
[0106] If(isFreqWord(token)){ //如果当前是高频字
[0107] Token token2;
[0108] If(isFristWord(token))
[0109] token2=mergeToken(lastToken,token);//位于句首则后向结合[0110] else
[0111] token2=mergeToken(preToken,token); //非句首则前向结合[0112] doTokenSearch(token2); //对结合后的新词进行查询
[0113] }
[0114] else
[0115] doTokenSearch(token); //如果不是高频字,则直接查询
[0116] 在搜索引擎中应用上述数据查询方法实施例进行数据查询,由于建立的索引中没有高频字,并且将高频字与其它字组成二元分词后建立了索引,因此在数据查询时不会因为对高频字进行索引而浪费搜索引擎的资源,并且也不会因为跳过对高频字的查询而导致结果不准确。
[0117] 另外,需要说明的是,上述本申请索引和查询实施例应用在中文搜索引擎时,其中对待查询的数据进行分词操作得到的一元分词指每个单字,以“中国股市”为例,根据统计结果预先设置的过滤字为“市”,划分得到的一元分词为“中”、“国”、“股”、“市”;当上述本申请索引和查询实施例应用在外文搜索引擎时,以英文“Chinese Stock Market”为例,则假设根据统计“Stock”是过滤字,则按照英文分词特点划分得到的一元分词为“Chinese”、“Stock”、“Market”,后续索引和查询的过程与中文字一致,即在索引时,过滤“Stock”后,得到的索引分别为“Chinese”、“Chinese Stock”、“Stock Market”和“Market”;查询时,可以对“Chinese”、“Chinese Stock”、“Market”进行查询,在此不再赘述。
[0118] 与本申请基于搜索引擎的文档索引方法和数据查询方法的实施例相对应,本申请还提供了基于搜索引擎的文档索引服务器和数据查询服务器的实施例。
[0119] 参见图5,为本申请基于搜索引擎的文档索引服务器的第一实施例框图:
[0120] 该文档索引服务器包括:获取单元510、分词单元520、判断单元530和索引单元540。
[0121] 其中,获取单元510,用于获取待索引的文档;
[0122] 分词单元520,用于对所述获取单元510获取的文档进行分词操作得到一元分词;
[0123] 判断单元530,用于判断每个一元分词是否为过滤字;
[0124] 索引单元540,用于当所述判断单元530判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,对所述多元分词建立索引,当所述判断单元530判断所述一元分词不是过滤字时,则直接对所述一元分词建立索引。
[0125] 参见图6,为本申请基于搜索引擎的文档索引服务器的第二实施例框图:
[0126] 该文档索引服务器包括:预置单元610、加载单元620、获取单元630、分词单元640、判断单元650和索引单元660。
[0127] 其中,预置单元610,用于预先设置过滤字列表;
[0128] 加载单元620,用于加载所述阈值单元610中的过滤字列表;
[0129] 获取单元630,用于获取待索引的文档;
[0130] 分词单元640,用于对所述获取单元630获取的文档进行分词操作得到一元分词;
[0131] 判断单元650,用于判断每个一元分词是否为过滤字;
[0132] 索引单元660,用于当所述判断单元650判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,对所述多元分词建立索引,当所述判断单元650判断所述一元分词不是过滤字时,则直接对所述一元分词建立索引。优选的,索引单元660将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词,对所述二元分词建立索引。
[0133] 具体的,判断单元650可以包括(图6中未示出):遍历分词单元,用于遍历所述一元分词;查找过滤字单元,用于通过查找所述过滤字列表判断每个一元分词是否为过滤字。
[0134] 本申请提供的基于搜索引擎的数据查询服务器的实施例通过应用所述文档索引服务器的实施例所建立的索引进行数据查询。
[0135] 参见图7,为本申请基于搜索引擎的数据查询服务器的第一实施例框图:
[0136] 该数据查询服务器包括:获取单元710、分词单元720、判断单元730、查找单元740和合并单元750。
[0137] 获取单元710,用于获取待查询的数据;
[0138] 分词单元720,用于对所述获取单元获取的数据进行分词操作得到一元分词;
[0139] 判断单元730,用于判断每个一元分词是否为过滤字;
[0140] 查找单元740,用于当所述判断单元730判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,根据所述多元分词查找所述索引,当所述判断单元730判断所述一元分词不是过滤字时,则根据所述一元分词查找所述索引;
[0141] 合并单元750,用于将所述查找单元740查找所述索引后得到的查询结果进行合并。
[0142] 参见图8,为本申请基于搜索引擎的数据查询服务器的第二实施例框图:
[0143] 该数据查询服务器包括:加载单元810、获取单元820、分词单元830、判断单元840、查找单元850和合并单元860。
[0144] 加载单元810,用于加载预先设置的过滤字列表;
[0145] 获取单元820,用于获取待查询的数据;
[0146] 分词单元830,用于对所述获取单元820获取的数据进行分词操作得到一元分词;
[0147] 判断单元840,用于判断每个一元分词是否为过滤字;
[0148] 查找单元850,用于当所述判断单元840判断所述一元分词是过滤字时,将所述一元分词和与所述一元分词顺序相邻的至少一个一元分词组成多元分词,根据所述多元分词查找所述索引,当所述判断单元840判断所述一元分词不是过滤字时,则根据所述一元分词查找所述索引;优选的,查找单元850将所述一元分词和与所述一元分词顺序相邻的一元分词组成二元分词,根据所述二元分词查找所述索引;
[0149] 合并单元860,用于将所述查找单元850查找所述索引后得到的查询结果进行合并。
[0150] 具体的,判断单元840可以包括(图8中未示出):遍历分词单元,用于遍历所述一元分词;查找过滤字单元,用于通过查找所述过滤字列表判断每个一元分词是否为过滤字。
[0151] 通过以上的实施方式的描述可知,本申请实施例在对搜索引擎的索引和查询过程中,通过将高频一元分词组成有限多元分词,从而将对高频字的查询转换为对低频词的查询,在获取正确查询结果的基础上降低了搜索引擎的负载,提升了搜索引擎的查询性能。
[0152] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0153] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0154] 本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0155] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0156] 虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。