我理解模糊搜索的一切都很好,但在我的應用程序中,它們非常緩慢且詞條很多(〜500ms)。我遇到了一個解決方案,以減緩模糊搜索,因爲它建議不要使用模糊搜索,而是使用levenstein算法對術語進行索引,以便正則關鍵字搜索會產生模糊結果。Hibernate搜索中的模糊索引
有沒有什麼辦法做到這一點與Hibernate搜索,最好使用註釋?
我理解模糊搜索的一切都很好,但在我的應用程序中,它們非常緩慢且詞條很多(〜500ms)。我遇到了一個解決方案,以減緩模糊搜索,因爲它建議不要使用模糊搜索,而是使用levenstein算法對術語進行索引,以便正則關鍵字搜索會產生模糊結果。Hibernate搜索中的模糊索引
有沒有什麼辦法做到這一點與Hibernate搜索,最好使用註釋?
我不太清楚你想在這裏做什麼。你是否希望在索引時間內將具有給定Levenstein距離的詞插入索引中?與同義詞搜索在何處插入同義詞標記到索引中類似?如果是這樣,您可以在令牌過濾器(和過濾器工廠)上編寫代碼,然後使用框架構建您的自定義分析器。看看源代碼,看看它是如何完成的。請注意,我看到了這種方法的幾個問題。索引變得非常昂貴,索引尺寸將變得非常大。當然,我對你的用例瞭解得不多。
我會嘗試以下選項,依次是:
如果上述不適用,並且您確實需要模糊搜索,並且沒有其他選擇,則可以嘗試每晚使用lucene主幹構建。這使用了完全不同的算法,以便這些查詢速度更快[1]。但是,我認爲您不能輕鬆將未發佈的lucene主幹與hibernate進行整合。
[1]:http://blog.mikemccandless.com/2011/03/lucenes-fuzzyquery-is-100-times-faster.html關於模糊改進的博客。
謝謝!你是對的,這不是一個全文搜索,而是根據某些字段數據在數據庫中搜索記錄。模糊搜索需要應用於這些字段中的幾個以及對於長達30秒左右的搜索的長搜索查詢。我選擇暫時使用模糊搜索。 – Mouscellaneous