为什么 Lucene 结果仅包含完全匹配项



我在Lucene中创建了一个文档索引。其中一个字段名为title,我想搜索title包含word的所有文档。不幸的是,我只得到确切的结果 - 我得到带有标题的文档word(但不是例如 my word )。

法典:

    String field = "title";
    String value = "word"; 
    List<MyDoc> myDocList = new ArrayList<MyDoc>();
    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_45);
    QueryParser parser = new QueryParser(Version.LUCENE_45, field, analyzer);
         try {
             Query query = new TermQuery(new Term(field, value));
            int numResults = 100;
            ScoreDoc[] hits =   indexSearcher.search(query,numResults).scoreDocs;
            for (int i = 0; i < hits.length; i++) {
                 Document doc = indexSearcher.doc(hits[i].doc);
                 myDocList .add(getMyDoc(doc));
            }
         } catch (IOException e) {
             e.printStackTrace(); 
         }
         return myDocList ;

检查索引是如何创建的。听起来您可能使用了StringField而不是TextField。我不认为 StringField 会标记它的内容,而是将其视为一个大关键字。

最新更新