簡體   English   中英

字段中的多詞搜索

[英]Multiple word search in field

我最近開始在 lucene.net 上玩一個工作中的內部項目。 我正在尋找使用 lucene.net 創建一種自動完成類型。 我的索引存儲顯示名稱,當我進行通配符搜索時,即 James*,它工作正常。

問題似乎是當空格出現在單詞 ie James Bon* 之間時,它似乎忘記了第一個單詞並開始嘗試匹配 Bon。

不確定我是否做錯了什么,但嘗試使用一些不同的分析器但沒有運氣。

任何人都有任何可以讓我走上正確軌道的想法?

28/11/2012

再次查看我的項目后,我意識到我正在使用 MultiFieldQueryParser 來嘗試搜索多個字段。 嘗試了更改 DefaultOperator 的建議,但沒有運氣。

var analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
var mparser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_30, new string[] { "displayname", "company", "email" }, analyzer);

默認情況下,Lucene.net 對提供的術語執行OR搜索,而不是AND搜索。 使用此代碼進行更改:

parser.SetOperator(QueryParser.DEFAULT_OPERATOR_AND);

如果您只是在單個字段上執行多詞查詢,那么您希望多詞表現得像“like”運算符,然后使用下面的行。

parser.DefaultOperator = QueryParser.Operator.AND;

暫無
暫無

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

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