Lucene.net バージョン 3.0 API を利用して、プロジェクトのインデックスを作成および検索しています。インデックス内の各ドキュメントには 3 つのフィールドがあります。
- 取引ID
- エージェント
- 貸し手
私の要件はこれです:
検索語が Document のTransactionIdの値の最初の部分と一致する場合にヒットが必要です。たとえば、「ab」を検索すると、「ab-1」または「ab-2」に等しいTransactionIdを持つドキュメントがヒットします。
完全な検索用語がAgentとLenderに一致する場合にのみヒットが必要です。「ab」を検索しても、Lender の値が「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);
が「ab」の場合queryText
、クエリの値は{TransactionId:ab Agent:ab Lender:ab}
私はそれが次のようなものであることを探していることを知っています{TransactionId:ab* Agent:ab Lender:ab}
でこれを行う方法はありますMultiFieldQueryParser
か?