搜索速度问题:本地索引与hdfs平台索引,中文搜索与英文搜索速度不一致

来源:互联网 发布:数据库select什么意思 编辑:程序博客网 时间:2024/05/22 01:26

晚上在oschina上看见有人发帖,大概意思如下:

 

1.在Nutch+hdfs平台进行搜索,hdfs存放索引的时候搜索速度比索引存放在本地的时候慢。

2.中文搜索速度比英文搜索速度慢(或者搜英文比搜中文慢,作者没详细描述,但肯定是速度不一致,呵呵)

 

分析了一下,觉得

 

大概两方面的问题:

1.搜索不提倡在hdfs上面进行。因为在hdfs上面的索引可能不在同一节点,搜索可能需要请求n个节点才能完成。这样,对在hdfs上面完成搜索较本地索引文件在本地的搜索性能会略逊一些。

2.关于中文速度比英文慢的问题。这个需要考虑如下几个方面的原因:

2.1 索引中索引了多少文件,是不是很多?

2.2 中文是不是较英文多很多?

2.3 如果以上两个假设都成立,那么,或许原因是这样的:

搜索引擎搜索索引大概分下面几步走:

a.在倒排索引中找到关键词对应的文档列表

b.遍历文档列表,对每个文档计算其相关度。

c.取相关度较高的topN个文档返回

在索引比较小的情况下,这几个步骤会非常快。对于中文、英文搜索速度上面几乎会没有什么差别。

但是在索引比较大的情况下,中文文档较多,自然关键词对应的文档列表会比英文的长一些,走完这几个步骤的时间也会长一些。

当然,如果英文多一些,这个情况可能会反过来。

 

这些是一些不太成熟的想法。希望对大家有帮助。