2011-04-22 129 views
0

我一直在尋找一種搜索方法在我的網站上的實現,但我一直沒有能夠決定最好的辦法。可以搜索的內容放在六個不同的表格中。一個包含「標籤」的表格包含「類別」,然後是包含標題列的四個表格。搜索網站內容的方法

我一直在尋找純粹的sql搜索,但它似乎有點慢(我不能使用全文搜索索引),此外我希望搜索找到與搜索單詞相似的單詞的結果,而不是隻是「完全匹配」,例如搜索一個拼寫錯誤的單詞「Memhis」也應該返回帶有「Memphis」的內容。

您會採取哪種方法以及哪種算法/數據結構對此有好處?

回答

0

Lucene.NET似乎很受歡迎的網站搜索,我認爲它可以做所有的模糊匹配的東西。它不需要SQL全文搜索。

+0

我一直在尋找Lucene.NET,但我還沒有找到一些有關在內存中保留索引以及如何處理數據庫中的更改/重建索引的文檔? – aweis 2011-04-22 08:17:03

0

我會創建另一個連接所有不同列的表格列,然後在其上運行搜索。這是我在我的網站上完成的。要找到類似的詞,應該有現有的插件來做到這一點。你不應該自己做。

1

如果您對嵌入式解決方案沒有嚴格要求,我推薦使用Solr。簡而言之,它通過HTTP公開Lucene。我們已經開始使用Lucene.Net,但我們切換到Solr並沒有太長時間。它是用java編寫的,但不需要編寫任何Java代碼。

可以使用DIH(我沒有用過)或Solrnet(我們正在使用它)用c#/ .Net完成工作。

關於索引(重新)生成;它可以很簡單,如每天重新生成索引一次或兩次,或與觸發器等更新單個條目或兩者的組合。

它可能是一個陡峭的學習曲線,但我認爲這是值得的時間,如果你能省下一些。