2009-07-02 77 views
1

我知道,搜索本身是一個巨大的領域,這似乎也是我的問題。我只是不知道從哪裏開始。任何常用的索引/搜索數據的算法?

這裏是場景: 我得到了很多商店,僱用了很多人,並有很多不同的產品出售。我需要爲我的網站創建單個文本框的搜索選項。該文本字段應該搜索商店的元數據(地址,名稱等),產品元數據(名稱,類型等)以及員工。

我認爲這個搜索選項將在網站上被廣泛使用,所以它需要很好地執行(在每一列中沒有查找,string.Contains()等)。

目前我正在考慮爲數據庫中的每個實體指定商店/員工/產品,但我不確定這種數據重複是否易於維護。另一個選擇是緩存流行的遊戲世界,但是,我認爲任何遊戲世界都不會比其他遊戲更受歡迎。

我敢肯定我不是第一個有這種問題的人。有沒有共同的策略,第三方庫,第三方網站或只是暗示我這樣做?

感謝提前:)

+0

爲什麼你想看看元數據? – Kevin 2009-07-02 16:01:43

回答

3

你有沒有看Lucene?它是開源的,Java版本已經成熟。它可以極大地幫助您索引和搜索組織的數據。我相信有.Net,C(帶有Perl/Ruby綁定)和Python的版本。

關於文檔 - 對於Java版本,至少有一些書籍在那裏,包括this one

我已經有很好的經驗,使用它來索引存儲在數據庫中的關係數據,以便它可以以特別的方式進行搜索。但是,它也可以抓取和索引基於文件的數據。

+0

看起來非常有趣:O雖然文檔看起來有點差,但我會有把握地看着它:) – cwap 2009-07-02 15:51:36

1

您確實在尋找一個全文搜索引擎。按照teabot的建議,Lucene是一個很好的工具。

基於Lucene(當然銷售)的項目是DBSight,它提供了用於管理搜索結果的外觀/格式的工具和接口,以及基於數據庫查詢的結果在Lucene中設置索引你定義你自己。

現在我覺得自己是個sh sh。但我已經嘗試過,效果很好。