簡體   English   中英

Lucene MultiFieldQueryParser不起作用

[英]Lucene MultiFieldQueryParser does not work

我不明白為什么查詢不起作用。

我需要按兩個字段搜索文檔。 兩個ID。 如果兩個值匹配,則需要搜索文檔。 ID1和ID2

但是我得到了一個空洞的結果。

        query = MultiFieldQueryParser.parse(new String[]{id1, id2},
            new String[]{"ID1", "ID2"},
            new SimpleAnalyzer());
        TopDocs topDocs = searcher.search(query, 1);
        Document doc = searcher.doc(topDocs.scoreDocs[0].doc)

索引工作100%。 已通過其他請求驗證。

謝謝您的幫助。

由於您只想在兩個單獨的查詢之間執行AND交集-而不是真正執行MultiFieldQuery(您在多個字段中搜索相同的值),因此應該對使用Boolean Query進行的Lucene OR搜索顯示的內容進行稍作修改的版本工作:

BooleanQuery bothQuery = new BooleanQuery();

                                         // field, value
TermQuery idQuery1 = new TermQuery(new Term("ID1", "id1"));
TermQuery idQuery2 = new TermQuery(new Term("ID2", "id2"));

bothQuery.add(new BooleanClause(idQuery1, BooleanClause.Occur.MUST));
bothQuery.add(new BooleanClause(idQuery2, BooleanClause.Occur.MUST));

TopDocs topDocs = searcher.search(bothQuery, 1);
Document doc = searcher.doc(topDocs.scoreDocs[0].doc)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM