我已经实现了 hibernate search orm (LATEST lucene_version),其中搜索词包含条目查询:
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder()
.forEntity(Application.class)
.get();
Query queryName = queryBuilder
.keyword().fuzzy().withEditDistanceUpTo(2).withPrefixLength(2)
.onField("name")
.matching("*" + q + "*")
.createQuery();
如果我的查询是“q=Wiki”,则此 queryName 无法找到诸如“Wikicrédit”或“Wikipro”或“WikiCash”之类的词
我如何增强这些指令以独立于编辑距离来获取以 'Wiki%' 开头的单词!
答案 0 :(得分:1)
要么:
simpleQueryString
query 并将您的查询输入为 Wiki*
。name-edgengram
字段,该分析器会将 Wikicrédit
索引为 [W, Wi, Wik, Wiki, Wikic, Wikicr, ...]
,然后查询该字段,如 this answer 中所述。