如何使用 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);
我正在将搜索查询传递给 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);