我正在做一個基於asp.net mvc框架的web項目。作爲db我使用的是Postgre SQL。問題是如何在我的應用程序中組織搜索。一種選擇是使用.net庫,如lucene.net。另一種選擇是使用Postgre全文搜索。那麼最好的選擇是什麼?postgres全文搜索
1
A
回答
3
我還沒有在生產中運行postgres,但是我在一個測試數據庫上玩了很多重要的數據(我認爲)。索引大約600,000行平均3個字的文本字符串可創建120MB的全文索引。在之後,針對每個搜索詞的第一個查詢之後,查詢對於該索引非常快。看起來每個術語的索引都必須從磁盤提取到內存中。我還沒有找到一種方法在啓動時將整個索引存入內存。由於我在單檯筆記本電腦上運行,因此有些初始緩慢可能與磁盤IO相關。我也不確定120MB索引是否需要120MB或更多的DB內存。
對於生產應用程序,我們使用Lucene for Java,它的表現非常好 - 亞秒級響應與幾GB的索引數據。我看到的Lucene的優點是1)它獨立於數據庫,2)可分配。對於#1,這可能不是問題,但這意味着無論您的底層數據庫是什麼,您都可以使用相同的索引代碼。對於#2,這取決於應用程序有多大。 Lucene(尤其是Hadoop)被設計成多線程的,所以你可以將索引存儲在共享驅動器上,並讓多臺機器一次運行搜索(注意索引仍然是單線程的)。無論你是否想要這個,取決於你的架構是什麼。你願意有1個大型數據庫還是1個小型/中型數據庫以及一些支持它的小型索引服務器?
相關問題
- 1. postgres全文搜索字數
- 2. Postgres與同義詞全文搜索
- 3. Postgres全文搜索忽略url
- 4. Postgres的全文搜索性能問題
- 5. postgres中的模糊全文搜索
- 6. Postgres全文搜索:多列,跨表
- 7. 全文搜索(Postgres的)與彈性搜索
- 8. Rails全文Postgres搜索:索引中的db是必需的嗎?
- 9. 使用外生對GIN索引Postgres的全文搜索
- 10. Postgres的全文索引
- 11. Postgres全文檢索Array列
- 12. 全文搜索
- 13. 全文搜索
- 14. 全文搜索
- 15. 全文搜索
- 16. 全文搜索
- 17. Postgres搜索
- 18. 全文搜索jOOQ
- 19. 全文搜索MYSQL
- 20. 全文搜索DynamoDB
- 21. Usergrid全文搜索
- 22. InnoDB全文搜索
- 23. 全文搜索Rails
- 24. NHibernate全文搜索
- 25. Lucene全文搜索
- 26. 全文搜索CONTAINSTABLE
- 27. 全文搜索MySQL
- 28. Pymongo全文搜索
- 29. SQL全文搜索
- 30. Oracle全文搜索