NumericRangeQuery в NHibernate.Search - PullRequest
       42

NumericRangeQuery в NHibernate.Search

0 голосов
/ 31 августа 2011

Я создаю поиск, в котором пользователь может одновременно выбрать интервал и выполнить поиск по одному и тому же запросу.

Это, однако, доставляет мне проблемы, поскольку до тех пор, пока я использовал только обычныйтекстовый запрос.

Мне интересно, как мне поступить как с 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 принимает только один запрособъект

1 Ответ

0 голосов
/ 07 сентября 2011

вы можете создать один запрос, представляющий собой BooleanQuery, объединяющий все условия, которые вы хотите выполнить.

Для диапазонов - ссылка на синтакс, использующая QueryParser: http://lucene.apache.org/core/old_versioned_docs/versions/2_9_2/queryparsersyntax.html#Range Поиски

...