NumericRangeQuery в 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 <-> ToPrice, а также в описании, как мне это сделать, поскольку session.CreateFullTextQuery принимает только один объект Query?

1 ответ

Решение

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

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

Другие вопросы по тегам