NHibernate.Search中的NumericRangeQuery

时间:2011-08-31 18:18:05

标签: lucene.net nhibernate.search

我正在创建一个搜索,用户可以选择一个间隔并在同一个搜索中搜索一个词。

然而,这给了我麻烦,因为我一直只使用通常的文本查询。

我想知道如何使用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对象?

1 个答案:

答案 0 :(得分:0)

您可以创建一个结合了您想要满足的所有条件的BooleanQuery的查询。

对于范围,继承人使用QueryParser链接到synthax: http://lucene.apache.org/core/old_versioned_docs/versions/2_9_2/queryparsersyntax.html#Range Searches