晚上在oschina上看见有人发帖,大概意思如下:
1.在Nutch+hdfs平台进行搜索,hdfs存放索引的时候搜索速度比索引存放在本地的时候慢。
2.中文搜索速度比英文搜索速度慢(或者搜英文比搜中文慢,作者没详细描述,但肯定是速度不一致,呵呵)
分析了一下,觉得
大概两方面的问题:
1.搜索不提倡在hdfs上面进行。因为在hdfs上面的索引可能不在同一节点,搜索可能需要请求n个节点才能完成。这样,对在hdfs上面完成搜索较本地索引文件在本地的搜索性能会略逊一些。
2.关于中文速度比英文慢的问题。这个需要考虑如下几个方面的原因:
2.1 索引中索引了多少文件,是不是很多?
2.2 中文是不是较英文多很多?
2.3 如果以上两个假设都成立,那么,或许原因是这样的:
搜索引擎搜索索引大概分下面几步走:
a.在倒排索引中找到关键词对应的文档列表
b.遍历文档列表,对每个文档计算其相关度。
c.取相关度较高的topN个文档返回
在索引比较小的情况下,这几个步骤会非常快。对于中文、英文搜索速度上面几乎会没有什么差别。
但是在索引比较大的情况下,中文文档较多,自然关键词对应的文档列表会比英文的长一些,走完这几个步骤的时间也会长一些。
当然,如果英文多一些,这个情况可能会反过来。
这些是一些不太成熟的想法。希望对大家有帮助。