我正在创建一个搜索,其中用户可以选择一个间隔,并在同一个go中搜索一个术语。
然而,这给我带来了麻烦,因为直到我只使用了通常的文本查询。
我想知道如何使用NumericRangeQuery和常规术语查询。通常我会使用下面的查询:
var parser = new MultiFieldQueryParser(
new[] { "FromPrice", "ToPrice", "Description"}, new SimpleAnalyzer());
Query query = parser.Parse(searchQuery.ToString());
IFullTextSession session = Search.CreateFullTextSession(this.Session);
IQuery fullTextQuery = session.CreateFullTextQuery(query, new[] { typeof(MyObject) });
IList<MyObject> results = fullTextQuery.List<MyObject>();但是,如果我要搜索范围FromPrice <-> ToPrice和描述,既然session.CreateFullTextQuery只接受一个查询对象,我应该如何做呢?
发布于 2011-09-08 02:47:35
您可以创建一个查询,它是一个BooleanQuery,它组合了您希望满足的所有条件。
对于范围,这里有一个使用QueryParser的synthax的链接:http://lucene.apache.org/core/old_versioned_docs/versions/2_9_2/queryparsersyntax.html#Range Searches
https://stackoverflow.com/questions/7261525
复制相似问题