2012-01-11 86 views
4

現在,我們使用Solr作爲全文索引,其中文檔的所有字段都被索引但未存儲。 有幾百萬個文件,索引大小是50 GB。平均查詢時間大約爲100ms。索引大小對搜索速度的影響(存儲或不存儲)

要使用突出顯示等功能,我們正在考慮:額外的商店文本。但是,這可能會使索引文件的大​​小加倍。

我知道索引大小和查詢時間之間絕對沒有(線性)關係。將因素10上的文檔上升會導致查詢時間幾乎沒有差異。

但是,系統(Solr/Lucene/Linux/...)必須處理更多信息 - 索引文件(例如)基於更多的I節點等等。

所以我敢肯定,對索引大小的查詢時間有影響。 (但是:這是顯而易見的嗎?)

1st: 你認爲我是對的嗎? 您是否有任何關於索引大小和搜索速度的經驗? 通過存儲文檔來炸開索引是否合理又合理?

2nd: 您知道嗎,Solr/Lucene如何處理存儲的文本?也許在單獨的文件? (因此,對簡單搜索沒有影響,因爲不需要存儲文本!)

謝謝。

+0

我可以知道我的答案是否有用嗎?你在找別的東西嗎? – javanna 2012-01-14 11:13:06

+0

我寫了這個問題,以便獲得關於索引大小取決於搜索速度的影響的感覺 - 也許來自有實際經驗的人。所以「我不認爲」不會幫助我。將你的鏈接發佈到lucene文件doc很有用。 – 2012-01-18 16:23:24

+0

那麼,我確實有實際經驗,而且我從來沒有在存儲字段時遇到性能問題,而我遇到了尺寸問題。此外,鏈接證明存儲區域不會降低性能。這不是回答你的問題嗎? – javanna 2012-01-18 16:53:15

回答

1

是的,如果您存儲大字段,索引增長是絕對正確的,但如果您想突出顯示它們,則沒有其他方法。我不認爲速度會下降很多,也許只是因爲你需要下載更多的數據檢索結果,但這不是那麼相關。

關於lucene索引格式和索引內的不同文件,您可以看看here:存儲的字段存儲在特定的文件中。

+0

如果您想突出顯示,您不必存儲,您可以獲取原始數據並重新分析數據庫中的原始內容,然後突出顯示。 – milan 2012-01-11 15:29:51

+0

當然,如果你有一個分貝。我不確定在性能方面的成本是多少。我的意思是,如果你已經有了一個你需要的數據的分區,它可以節省文件系統的空間,但也許比在性能方面存儲字段更糟。 – javanna 2012-01-11 15:33:10

+0

每次都必須重新分析,這就是權衡。存儲字段不應影響搜索性能,因爲它們無論如何都會轉到其他文件。不知道這是否符合複合索引格式.. – milan 2012-01-11 15:39:22