搜索包含'query'的单词



我已经实现了hibernate搜索表单(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%"开头的单词,而不受编辑距离的影响!

任一:

  1. 使用simpleQueryString查询并将查询键入为Wiki*
  2. 使用edge ngram分析器声明一个单独的name-edgengram字段,该分析器将把Wikicrédit索引为[W, Wi, Wik, Wiki, Wikic, Wikicr, ...],然后查询该字段,如本答案所述

最新更新