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