如何使用 Lucene.Net 将搜索词组与通配符结合起来?

How to combine a search phrase with a wildcard using Lucene.Net?

我正在将搜索查询传递给 Lucene QueryParser.Parse(string query) 方法,然后将结果传递给 Searcher.Search(Query query, int n)。

一串:

"system cleaner"

returns 1 次点击。

一串:

"system clean*"

或:

"system clean\*"

returns 0 次点击。

如何提供同时使用引号短语和通配符的搜索查询?

QueryParser 不支持。您可以使用 SpanQuery API:

构建这样的查询
SpanQuery firstwordQuery = new SpanTermQuery(new Term("myField", "system"));
//Unfortunately, Lucene.Net doesn't have SpanMultiTermQueryWrapper...
SpanQuery secondwordQuery = new SpanRegexQuery(new Term("myField", "clean.*"));
SpanQuery[] spanClauses = new SpanQuery[] {firstwordQuery, secondwordQuery};
Query finalQuery = new SpanNearQuery(spanClauses, 0, true);