我正在開發一個Django項目,我需要實現全文搜索。我看到了SOLR,並發現了一些相同的好評。但是,它在Java中實現並需要將Java環境與Python一起安裝在系統上。尋找與SOLR相當的python,我看到了Whoosh,但我不確定Whoosh是否與SOLR一樣高效和強大。或者我應該只使用SOLR選項,還是比使用Python的Whoosh和SOLR有更好的選擇?全文搜索:飛快與V SOLR
請建議。
在此先感謝
我正在開發一個Django項目,我需要實現全文搜索。我看到了SOLR,並發現了一些相同的好評。但是,它在Java中實現並需要將Java環境與Python一起安裝在系統上。尋找與SOLR相當的python,我看到了Whoosh,但我不確定Whoosh是否與SOLR一樣高效和強大。或者我應該只使用SOLR選項,還是比使用Python的Whoosh和SOLR有更好的選擇?全文搜索:飛快與V SOLR
請建議。
在此先感謝
飛快移動實際上是非常快速的python只實現。也就是說,它至少還要慢一個數量級。根據您需要索引和搜索的數據量以及最大允許延遲和併發搜索的要求,它可能不是一個選項。
SOLR是一個複雜的野獸,但它是迄今爲止最全面的搜索解決方案。將其與solrpy混合以獲得令人驚歎的效果。是的,你將需要Java託管。您可能還想查看python bindings for xapian。 Xapian速度非常快,但是比SOLR少了一個完整的解決方案。他們是GPL許可的,所以可能/不可能適合你。
我已經使用Lucene和Lucene擴展,比如SOLR和Nutch,並且我發現lucene幾乎滿足我需要的東西。我只嘗試過一次,但選擇了Lucene,因爲 1)我正在使用Java 2)我很難讓UTF-8與Whoosh一起工作(不知道它現在是否可以使用)。在Lucene中,我用漢字處理沒有問題。
如果您使用Python作爲您的編程語言,並且Whoosh滿足您的需求,那麼我建議您將它用於Java替代品,以便更好地集成,避免外部依賴性,如果需要編寫附加功能則可以更快地進行自定義。
更新:如果您有興趣使用Lucene的,它有一個Python包裝:見http://lucene.apache.org/pylucene/
看一看Django的乾草堆。它提供了solr,woosh,xapian和其他一些搜索引擎之上的抽象層。隨着乾草堆,你可以開始嘗試使用woosh,然後切換到更快和/或更強大的引擎,而不需要太多的代碼更改 – 2010-07-12 11:20:12