[英]Lucene queryParser builds the query correctly but search doesn't wrok
[英]Lucene 3.5.0 QueryParser doesn't find any results while programmatically generated query does
這最近一直困擾着我,我似乎無法在任何地方找到合適的解釋。
如果我運行一個使用查詢 API 構建的查詢,它運行得非常好。
TermQuery sourceQuery = new TermQuery(new Term("source", "CNN"));
運行results = searcher.search(sourceQuery, 30)
並檢查results.totalHits
顯示值為 159。
但是,在同一個程序中,我設置了一個QueryParser
(我的默認字段稱為text
):
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
QueryParser parser = new QueryParser(Version.LUCENE_35,
"text", analyzer);
並輸入命令行查詢
source:CNN
我沒有得到任何結果。 在Luke上運行這個命令確實給了我一個結果。 有誰知道發生了什么事?
您可能為 QueryParser object 使用了錯誤的分析器。請注意:
我想當您為文本編制索引時,您的術語是大寫的(或變成大寫的)。 這解釋了為什么方法 1 和 3 有效,但方法 2 無效,因為案例不匹配。 一般來說, 在索引和搜索時使用同一個 Analyzer是個好主意,或者至少要注意大小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.