繁体   English   中英

使用MultiFieldQueryParser时如何在Lucene中搜索部分单词?

[英]How do I search partial words in Lucene when using MultiFieldQueryParser?

 public SearchResult search(String queryStr, SortBy sortBy, int maxCount)
      throws ParseException, IOException {
    String[] fields = {Indexer.TITLE_FIELD_NAME, Indexer.REVIEW_FIELD_NAME, "name"};


    QueryParser parser = new MultiFieldQueryParser(fields, analyzer);
    Query query = parser.parse(queryStr);

    Sort sort = null;
    if (sortBy != null) {
        sort = sortBy.sort;
    }

    return searchAfter(null, query, sort, maxCount);
}

上面的方法只是给我结果,但是为此我必须搜索整个单词,但是如果我搜索部分单词,它将不起作用。

默认情况下, MultiFieldQueryParser (和QueryParser ,此类继承自该类)将查找要搜索的整个单词,但是它也可以生成通配符查询。 可以通过使用elep*elep?ant (即,算术一个字母)或ele*nt来匹配单词“ elephant”。 您还可以使用模糊查询,例如elechant~

您可以在此处阅读整个语法规范: http : //lucene.apache.org/core/7_5_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html (在类列表下方)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM