到目前爲止故事:Django實際工作的搜索引擎解決方案?
決定與Xapian的去作爲搜索的後端,因爲它擁有所有的搜索引擎功能,我一直在尋找,知道的Unicode,詞幹,幾乎沒有依賴關係,並要求在沒有臃腫的應用服務器安裝它的頂部。
嘗試過Django和Haystack(加上xapian-haystack,將Haystack綁定到Xapian的後端粘貼代碼),因爲它在相當多的博客上被標榜爲「working」。不工作。 django-haystack和xapian-haystack項目都沒有提供實際合作的版本組合。來自兩個項目的MASTER從Xapian中產生一個錯誤,所以它不穩定。 Haystack 1.0.1和xapian-haystack 1.0.x/1.1.0不兼容API。此外,在草堆1.0.1和Xapian的-MASTER草垛的最小安裝工作,任何複雜的查詢產生任何結果,由於在任Django的草垛或Xapian的-草垛(我的雙驗證了這一點)的錯誤,也許是因爲單元測試實際上測試非常簡單的案例,並且根本沒有邊緣案例。
試過Djapian。源代碼是充斥着拼寫錯誤(請注意,在變量名,而不是評論),文檔也充滿了含糊和過時的信息永遠不會導致工作安裝。毫不奇怪,用戶很少要求功能,但如何才能使其工作。探索Solr(安裝Java環境加上Tomcat讓我頭痛,機器受內存和CPU限制)或Lucene(稍微少點頭疼,但仍然)。
在我開始花更多的時間與可能或可能無法正常工作,標榜一個解決方案,我想知道:有沒有人得到一個實際的,現實世界的搜索解決方案在Django的工作?我是認真的。我覺得很沮喪閱讀「主要是解決大問題」,然後意識到,你將永遠不會從源代碼得到一個工作安裝,因爲,事實上,對付那些「大多是亟待解決的問題」的所有博客從來沒有過去基本安裝和複製粘貼官方教程。
因此,這裏是要求:
- 必須能夠搜索10-100術語在一個查詢
- 必須處理+(項必須存在)和 - (項必須不存在)和/或
- 必須(即左右括號AND/OR)處理任意分組
- 必須允許Django的ORM過濾前或全文搜索後(即前/結果與全套的後處理這Django知道有關過濾器)
- 替代地,必須有一個設施散裝取結果集,並將其轉換成一個查詢集
- 應該是在機器上的光,所以優選不堆積如山JVM和基於Java的應用程序服務器安裝
有沒有什麼可以做到這一點?我對軼事證據不感興趣,或者對一些聲稱它應該有效的博客文章的引用感興趣。我希望聽到有人在現實世界中真正具備全功能設置的情況下,在真實條件下以及真正的疑問。
編輯:
讓我再次重申,我不是這樣的傳聞證據表明,有人在什麼地方有着幾分運行安裝有不明性質的工作非常感興趣。我已經去了那裏,我閱讀了所有的博客文章,郵件列表,我聯繫了作者,但是當涉及真實場景的實際實施時,沒有任何東西能像廣告一樣工作。考慮到任何項目的總體擁有成本,我絕對不會有興趣聽到有人在一個供應商以未知數量跳傘時能夠把它拉下來的興趣。的專家用特定的領域知識對整個安裝進行修補,這些知識在任何地方都沒有記錄。
因此,如果您聲稱您的工作安裝實際滿足完整搜索的最低要求(請參閱上述要求),請提供以下內容,以便我們都能從Django的搜索解決方案中受益實際上解決了這個問題:
- 確切的Linux發行版,發行版,草垛(或同等學歷)
- 確切的發佈版本和發佈搜索後端的版本,搜索引擎
- 確切的發佈版本
- 公開(!)可用文檔如何準確設置所有組件,以符合上述最低要求。
謝謝。
恐怕你有一個非常有效的點。我一直在嘗試將djapian或haystack + xapian-haystack插入到一個網站,該網站在MySQL中使用LIKE實現了一個工作搜索功能,到目前爲止,它看起來像準備一個可重現的工作設置將是一場噩夢。我已經甩掉了Djapian並且用大海撈針,但儘管開始很快,但我已經發現了一些bug(或文檔短缺,我還不確定)。 – 2010-12-12 20:53:21