![](/img/trans.png)
[英]Lucene.Net multiple word search on multiple field and wild card use and phrase search, fuzzy search all
[英]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.