我想执行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