2009-07-30 106 views
0

我的任務是在電子商務網站上安排搜索服務。 目前,它在sql server上使用全文索引,這並不理想,因爲它很慢,並不是那麼靈活。在asp.net電子商務網站中實現Lucene搜索的最佳實踐

你怎麼會建議我的辦法改變這種過度Lucene的?由此,我的意思是,我最初如何將所有數據加載到索引中,以及如何維護它?在我的「插入產品」方法中,我是否也會將它插入到索引中?

任何信息都很有幫助!

回答

3

我目前使用Solr的,這是建立在Lucene之上,作爲我的電子商務項目之一的搜索引擎。它效果很好。

http://lucene.apache.org/solr/

而且儘可能保持產品在DB和Solr之間同步,你可以建立自己的「清道夫」或實施的Solr的DataImportHandler。

http://wiki.apache.org/solr/DataImportHandler

我們建立我們自己的清掃車,上面寫着一些間隔,並檢查一個數據庫視圖來查看是否有新的產品或任何產品數據已經更新。這是一種強力方法,我希望以前知道DataImportHandler。

方面也是Solr的一個非常強大的部分。我強烈建議使用它們。

2

如果你決定使用Lucene.NET爲您的搜索你需要做以下一些:

  • 通過 通過所有的記錄 迭代和寫作所需的數據創建初始索引 搜索到你的指數
  • 如果記錄和你正在寫你的索引中的數據量使得對於大的索引則認爲它們塞進多個索引(這意味着你將不得不作出一個更復雜的搜索程序,因爲你需要搜索每個索引,然後合併結果!!)
  • 產品更新或創建時,您需要更新您的索引(這裏有一個過程來創建額外的索引部分,然後合併索引)
  • 如果您有一個高流量網站,並且可能有多個搜索發生在同一時刻,那麼你需要創建一個包裝器,它可以跨多個重複索引(或索引集)進行搜索(在這裏認爲是單例模式),因爲索引只能被訪問(打開)一時間

這是一個很好的平臺。我們最初嘗試使用自由文本搜索,發現創建索引,更新和管理是一件痛苦的事情。搜索速度並不比標準的SQL搜索快得多。他們確實在搜索查詢中提供了一些靈活性......但與Lucene的強大功能相比,即使這樣也是如此!