我知道過去一直存在關於SQL 2005與Lucene.NET的問題,但自2008年問世以來,他們對它做了很多更改,並且想知道是否任何人都可以給我優點/缺點(或鏈接到一篇文章)。SQL Server 2008全文本搜索(FTS)與Lucene.NET
回答
2006年,我在SQL Server 2005的FTS之上構建了一箇中等規模的知識庫(可能是2GB索引文本),現在已經將它移至2008的iFTS。這兩種情況對我而言都很好,但從2005年到2008年的這一舉措對我來說實際上是一種改進。
我的情況並不像StackOverflow的意義上說,我只是每晚刷新數據的索引,但是我試圖將多個CONTAINSTABLE語句的搜索結果返回給對方和關係表。
在2005年的FTS中,這意味着每個CONTAINSTABLE必須在索引上執行搜索,返回完整結果,然後讓DB引擎將這些結果加入到關係表中(這對我來說都是透明的,但它是發生並且查詢費用昂貴)。 2008年的iFTS改善了這種情況,因爲數據庫集成允許多個CONTAINSTABLE結果成爲查詢計劃的一部分,這使得大量搜索更加高效。
我認爲,2005年和2008年的FTS引擎,以及Lucene。NET的架構折衷方案將會與許多項目情況相比更好或更差 - 我很幸運,升級對我有利。我可以完全明白爲什麼2008年的iFTS不能像2005年那樣在StackOverflow.com這種用例的高度OLTP性質上運行。然而,我不會打折2008年iFTS可能與繁重的插入事務負載隔離的可能性......但是這聽起來像完成轉移到Lucene.NET一樣多的工作......以及酷因爲Lucene.NET的因素很難忽略;)對於我來說,SQL 2008的iFTS在大多數情況下的易用性和效率可能會導致Lucene的'酷'因素(儘管它易於使用,我從未在生產系統中使用它,所以我保留對此的評論)。我很有興趣知道在StackOverflow或類似的情況下,Lucene是多麼高效(現在已經實現了嗎?)。
這可能幫助: http://blog.stackoverflow.com/2008/11/sql-2008-full-text-search-problems/
沒有使用SQL Server 2008中的個人,但基於該博客條目,它看起來像全文搜索功能比它慢於2005年
我們使用全文搜索的可能性,但在我看來,它取決於數據本身和您的需求。
我們使用網絡服務器進行擴展,因此我喜歡lucene,因爲我沒有那麼多的sql-server負載。
對於從零開始,並希望有一個全文搜索,我寧願sql-server解決方案,因爲我認爲這是真的很快得到的結果,如果你想lucene你必須在開始實施更多(也獲得一些技巧)。
SQL Server FTS對於小型部署將更容易管理。由於FTS與數據庫集成,因此RDBMS會自動更新索引。這意味着你沒有一個明顯的縮放解決方案,沒有複製數據庫。所以如果你不需要擴展,SQL Server FTS可能是「更安全」的。在政治上,大多數商店將會更加適應純粹的SQL Server解決方案。
在Lucene方面,我贊成直接使用Lucene的SOLR。無論使用哪種解決方案,您都必須在數據更改時自己更新索引,並將數據映射到SOLR/Lucene索引。專業人員可以通過添加其他索引輕鬆進行縮放。您可以在非常精簡的Linux服務器上運行這些索引,從而消除一些許可成本。如果你採用Lucene/SOLR路線,我會把你需要的所有數據直接放到索引中,而不是把索引放回數據庫。您可以在索引中包含不可搜索的數據,例如,您可以將預先構建的HTML或XML存儲在索引中,並將其作爲搜索結果提供。採用這種方法,您的數據庫可能會關閉,但您仍然可以在斷開模式下提供搜索結果。
我從來沒有見過SQL Server 2008和Lucene之間的頭對頭的性能比較,但很想看到一個。
需要注意的一點是除了全文約束之外,還有什麼樣的搜索約束條件。如果你正在做lucene無法提供的約束,那麼你幾乎肯定會使用FTS。 2008年的好處之一是,他們改進了FTS與標準SQL服務器查詢的集成,因此混合數據庫和FT約束條件下的性能應該比2005年更好。
- 1. SQL Server 2008中全文搜索結果
- 2. 解析SQL 2008的搜索查詢FTS
- 3. SQlite全文搜索(FTS)?
- 4. SQl Server 2008 FILESTREAM,索引服務和FTS
- 5. 使用sql server 2008搜索地址匹配全文搜索
- 6. PostgreSQL全文搜索與NHibernate.Search通過Lucene.Net
- 7. 獲取在SQL Server中使用FTS搜索的文本片段
- 8. PostgreSQL FTS:搜索文本[]列
- 9. SQL Server全文搜索
- 10. SQL Server全文搜索
- 11. 自2008 R2版本以來是否有任何Sql Server全文搜索(FTS)性能改進?
- 12. SQL Server 2008全文搜索 - 索引非常慢
- 13. SQL Server 2008搜索日期
- 14. SQL Server 2008 - 搜索查詢
- 15. SQL Server 2008全文索引問題
- 16. Sql Server 2008 Express全文檢索
- 17. SQL Server 2008上的全文索引
- 18. SQL Server 2008中 - 全文檢索
- 19. SQL Server 2008的全文索引問題
- 20. Lucene.NET與SQL SERVER 2000
- 21. 在Windows Server 2008上運行的SQL Server 2000全文本索引
- 22. SQL Server文本搜索
- 23. SQL 2008:關閉全文搜索查詢
- 24. sql server 2008上的全文搜索解決方案是什麼?
- 25. 全文搜索使用包含在sql server 2008中
- 26. 關於Sql Server 2008全文搜索的問題
- 27. SQL Server 2008全文搜索性能問題
- 28. 安裝在Windows Server 2008上的SQL 2000中的全文搜索
- 29. 全文搜索的SQL Server 2008許可證?
- 30. 全文搜索SQL Server 2008中的問題