【问题标题】:NumericRangeQuery in NHibernate.SearchNHibernate.Search 中的 NumericRangeQuery
【发布时间】:2011-08-31 18:18:04
【问题描述】:

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

然而这给我带来了麻烦,因为我之前只使用了通常的文本查询。

我想知道如何同时使用 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 只需要一个 Query 对象?

【问题讨论】:

    标签: lucene.net nhibernate.search


    【解决方案1】:

    您可以创建一个 BooleanQuery 查询,结合您希望满足的所有条件。

    对于范围,这里是使用 QueryParser 的合成器的链接: http://lucene.apache.org/core/old_versioned_docs/versions/2_9_2/queryparsersyntax.html#Range Searches

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多