我正在使用Lucene.net 3.0版API爲我的項目創建和搜索索引。在我的索引中的每個文件有三個領域:使用MultiFieldQueryParser對特定術語進行通配符搜索
- TRANSACTIONID
- 代理
- 貸款
我的要求是這樣的:
我想一擊,如果一個搜索詞匹配文檔的 val的第一部分 ue爲TransactionId。例如,如果我搜索「ab」,則 與TransactionId等於「ab-1」或「ab-2」的文檔將爲 匹配。
我只想命中時完整的搜索字詞匹配代理和貸款。 搜索「ab」將而不是 return 貸方爲「ab-1」或「ab-2」的值的文檔。
到目前爲止,我有下面的代碼塊:
var searcher = new IndexSearcher(FSDirectory.Open(path));
var parser = new MultiFieldQueryParser(Version.LUCENE_30,
new[] {"TransactionId", "Agent", "Lender"},
new StandardAnalyzer(Version.LUCENE_30));
var query = parser.Parse(queryText);
var hits = searcher.Search(query, 200);
如果queryText
爲「AB」,那麼查詢的值是{TransactionId:ab Agent:ab Lender:ab}
我知道我在尋找它有點像{TransactionId:ab* Agent:ab Lender:ab}
有沒有辦法用MultiFieldQueryParser
做到這一點?