晚上在oschina上看見有人發帖,大概意思如下:
1.在Nutch+hdfs平臺進行搜索,hdfs存放索引的時候搜索速度比索引存放在本地的時候慢。
2.中文搜索速度比英文搜索速度慢(或者搜英文比搜中文慢,作者沒詳細描述,但肯定是速度不一致,呵呵)
分析了一下,覺得
大概兩方面的問題:
1.搜索不提倡在hdfs上面進行。因爲在hdfs上面的索引可能不在同一節點,搜索可能需要請求n個節點才能完成。這樣,對在hdfs上面完成搜索較本地索引文件在本地的搜索性能會略遜一些。
2.關於中文速度比英文慢的問題。這個需要考慮如下幾個方面的原因:
2.1 索引中索引了多少文件,是不是很多?
2.2 中文是不是較英文多很多?
2.3 如果以上兩個假設都成立,那麼,或許原因是這樣的:
搜索引擎搜索索引大概分下面幾步走:
a.在倒排索引中找到關鍵詞對應的文檔列表
b.遍歷文檔列表,對每個文檔計算其相關度。
c.取相關度較高的topN個文檔返回
在索引比較小的情況下,這幾個步驟會非常快。對於中文、英文搜索速度上面幾乎會沒有什麼差別。
但是在索引比較大的情況下,中文文檔較多,自然關鍵詞對應的文檔列表會比英文的長一些,走完這幾個步驟的時間也會長一些。
當然,如果英文多一些,這個情況可能會反過來。
這些是一些不太成熟的想法。希望對大家有幫助。