簡體   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