我正在创建一个搜索,用户可以选择一个间隔并在同一个搜索中搜索一个词。
然而,这给了我麻烦,因为我一直只使用通常的文本查询。
我想知道如何使用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&lt; - &gt; ToPrice以及描述,我应该怎么做,因为session.CreateFullTextQuery只接受一个Query对象?
答案 0 :(得分:0)
您可以创建一个结合了您想要满足的所有条件的BooleanQuery的查询。
对于范围,继承人使用QueryParser链接到synthax: http://lucene.apache.org/core/old_versioned_docs/versions/2_9_2/queryparsersyntax.html#Range Searches