2011-12-16 54 views
1

我使用的是Lucene.Net,但我確定它仍然適用於non.Net的風格。Lucene:查詢分析器沒有按預期工作

這是我的查詢:

Collection:drwho AND Format:"Blu-ray" 

這是查詢分析器做它:

{+Collection:drwho +Format:"blu ray"} 

這顯然不是我所追求的。這是我正在使用的代碼:

Dim analyzer = New StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29) 
Dim qp = New QueryParser(Lucene.Net.Util.Version.LUCENE_29, Nothing, analyzer) 
Dim q As Query = qp.Parse(query) 

關於爲什麼查詢被拼貼的任何想法?據http://lucene.apache.org/java/3_4_0/queryparsersyntax.html,我不能爲我的生活中看到什麼是錯我的查詢......

+0

你希望做什麼? – adrianbanks 2011-12-16 01:04:02

回答

0

對於NOT_ANALYZED領域要麼你應該在你的代碼中創建TermQuery或使用KeywordAnalyzer,因爲它需要在索引項的精確匹配並且在您的查詢中(您的輸入在索引中存儲爲Blu-ray),其他分析程序處理輸入並將Blu-ray轉換爲blu ray,例如,您已經注意到了。

如果您將字段更改爲ANALYZED並在建立索引時使用StandardAnalyzer,那麼您的查詢也將以當前格式工作。