2016-10-03 45 views
0

我有一個關係數據庫,只有很少的表。其中一些列有我想啓用自動完成/自動更正(例如標題,標籤,類別)的列。Apache Solr對於單個數據庫列建議

我已經看到Apache Solr,它建立在Lucene索引上可以提供這樣的功能。也從關係數據庫中的數據can be fed到Solr。

我的問題是:這是我可以爲我的實體獲得自動完成和自動更正服務的最佳方式嗎?或者我在這裏用火箭筒殺死一隻蚊子?

Solr需要大量的資源,內存和東西,我不知道是否更簡單的東西可以爲我做的伎倆。

回答

0

您在標題,標籤,類別中有多少個唯一值?幾千?那麼我認爲你可以逃脫使用Trie數據結構。這些列中有幾百萬條記錄?然後Solr/Elasticsearch可能是不錯的選擇。

我已經使用Trie進行自我暗示。建立一個Trie是昂貴的。但是您可以將Mem存儲在Memcached甚至SQL中,並在將新數據添加到列時定期進行更新。

+0

嘗試對自動完成有好處,但我也需要實現一個良好的自動更正第三個任務的結構。 –

+0

您也可以使用trie進行拼寫檢查。 http://stackoverflow.com/a/21367876/689625,http://www.techniful.in/2012/04/spell-checker-using-trie_3.html。您還可以使用專用的拼寫檢查程序 - http://norvig.com/spell-correct.html。你可以使用sql列中的單詞作爲這個拼寫檢查器的輸入。 – jay