搜索包含 'query' 的词

Searching for a word that contains a 'query'

我已经实现了休眠搜索 orm(最新 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'

,则此查询名称找不到 'Wikicrédit' 或 'Wikipro' 或 'WikiCash' 之类的词

我如何增强这些指令以获得以 'Wiki%' 开头的单词,而与编辑距离无关!

或者:

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