我想執行LIKE搜索(例如,包含'abc'的所有單詞,即%abc%),但使用Hibernate Search API
。如何執行使用Hibernate Search的SQL LIKE搜索?
有沒有辦法通過使用現有的分析儀?
如果是這樣,哪一個在性能方面更好; SQL或Hibernate搜索這種情況?
我想執行LIKE搜索(例如,包含'abc'的所有單詞,即%abc%),但使用Hibernate Search API
。如何執行使用Hibernate Search的SQL LIKE搜索?
有沒有辦法通過使用現有的分析儀?
如果是這樣,哪一個在性能方面更好; SQL或Hibernate搜索這種情況?
正確,Hibernate Search比使用SQL LIKE標準更有效率。
StandardAnalyzer(org.apache.lucene.analysis.standard.StandardAnalyzer)非常合適,其他分析器將進行更高級的文本分割。
也許看看這個:
http://lucene.apache.org/core/4_10_2/core/org/apache/lucene/search/RegexpQuery.html?is-external=true
但要注意的是:
「請注意,此查詢可能會很慢,因爲它需要遍歷許多方面爲了防止極。慢RegexpQueries,一個RegExp期限不應與表達式開始。*」
這應納入Hibernate中,搜索
標準ANALY zer只會搜索完整的術語。我想分割單個單詞。像EdgeNGram,但'N'是動態的。 – 2014-09-01 11:57:02