我試圖搜索幾個字段,它工作正常,除非我使用術語「是」。在這種情況下,lucene只會忽略該字段。如果我做了如下所示的操作,我會得到正確的結果,「查詢」對象顯示爲「+ flag:bf + type:cgo」。如果我將標誌或類型術語中的任何一個設置爲「是」,那麼搜索的一部分將被忽略。 例如,如果我將queryString設置爲「flag:\」BE \「並鍵入:\」CGO \「」查詢對象將顯示爲:「+ type:cgo」,我會得到更多的點擊。 「類型」也是如此 - 如果我在最後一個例子中將「CGO」更改爲「BE」,它將被忽略。我沒有嘗試過所有可能的2個字符組合(但我已經嘗試了很多),但除了這一個以外,其他所有功能都按預期工作我沒有使用任何停止條款。Lucene QueryParser忽略搜索項「BE」
感謝, 基因
String queryString = "flag:\"BF\" AND type:\"CGO\"";
QueryParser qp = new QueryParser(Version.LUCENE_30,
"type", new StandardAnalyzer(Version.LUCENE_30));
Query query = qp.parse(queryString);
IndexSearcher searcher = new IndexSearcher(reader.reopen());
TopDocs td = searcher.search(q, 5000);
logger.info("Found " + td.totalHits + " hits using " + query.toString());
謝謝。使用關鍵字分析器而不是標準分析器解決了這個問題。 –