2009-09-08 149 views
0

我有一個約2000萬行的SQL 2000數據庫,我需要進行查詢以獲取基於完整/部分文本搜索的產品信息。 基於此,我需要回到其他表格來檢查我的業務流程。 我已經實現了使用SQL過程,但我只能驗證每行6行(沒有線程..其長業務邏輯)。我試圖找到一種更好的方法來提高性能。 Lucene.NET可能對此有所幫助。我有幾個問題。Lucene.NET與SQL SERVER 2000

你能指點我嗎?

在Lucene上構建索引時,如何與SQL數據庫和lucene數據庫同步? 您是否認爲Lucene可以提供真正的性能增益?

回答

1
  • 您可以從Mark Krellenstein's 'Search Engine versus DBMS'開始,查看全文搜索引擎(例如Lucene)是否適合您。從理論上講,Lucene應該比SQL更快的文本搜索,但是你的里程可能會有所不同。
  • 您可以使用Lucene進行增量更新,這與數據庫複製有點類似。這使Lucene索引與數據庫保持同步。
+0

感謝您的回答。我瀏覽了很多教程,並且可以將DB的記錄索引到本地文件。 正如我所說我的數據庫大約有1000萬條記錄,如果我從頭開始構建索引,Lucene需要一段時間。 我的做法是: - 創建一個windows服務,查找數據庫中的任何更新(每小時)並使索引與數據庫記錄保持同步。 假設,每小時增加2000個記錄,是否會對更新索引產生不利影響。索引編譯期間搜索速度是否放慢? – bkhanal 2009-09-08 14:00:21

+0

那麼,你需要以某種方式將記錄放入Lucene索引中。最好的方法是從頭開始離線建立索引。一旦你有了,你可以像你所建議的那樣使用增量更新。我只有在使用MySQL的Java Lucene方面的經驗,但我相信這些問題在您的設置中是相似的 - 每小時2000條記錄或每分鐘約40條更新似乎是合理的。它可能會減慢搜索速度。見http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Scaling-Lucene-and-Solr – 2009-09-09 07:50:02