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

时间:2015-05-26 11:13:11

标签: c# lucene lucene.net

我将搜索查询传递给Lucene QueryParser.Parse(字符串查询)方法,然后将结果传递给Searcher.Search(查询查询,int n)。

一串:

"system cleaner"

返回1次点击。

一串:

"system clean*"

或:

"system clean\*"

返回0次点击。

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

1 个答案:

答案 0 :(得分:2)

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);