Umbraco Examine - не работает запрос целых чисел
Я использую Umbraco v.7.6.1 с Examine v0.1.82 (Lucene 2.9.4.1). У меня есть список транспортных средств и форма поиска для запроса различных типов полей, включая цену. Поле Price является числовым полем данных, а в ExamineIndex определяется как:
<add Name="price" Type="INT" />
Проблема при поиске ценового диапазона, у меня нет результатов. Используя инструмент Examine Management в бэк-офисе Umbraco со следующим запросом:
+price:[50 TO 500000]
не дает результатов, хотя у меня есть автомобили в этом ценовом диапазоне.
Если я изменю индекс Examine и удаляю тег Type="INT" из поля цены, то запрос диапазона работает как обычный запрос диапазона строки и возвращает результаты.
Запрос работает правильно для всех строковых полей.
Согласно всему, что я прочитал в документации и предыдущих вопросах / ответах об Examine, это должно работать с версией Examine, которую я использую. Что может быть не так?
1 ответ
Я полагаю, вы ищете в бэк-офисе после установки его INT
в ExamineIndex.config
файл под IndexUserFields
, Бэк-офис не будет показывать результат, если вы передадите прямой запрос. Я столкнулся с тем же. Вы должны запросить код выброса, и он покажет результат.
Пожалуйста, установите <add Name="price" Type="Int" />
в конфигурационном файле. Я надеюсь, что дело не будет иметь проблемы, как INT
или же Int
,
Тогда запрос из кода, как показано ниже
var searcher = Examine.ExamineManager.Instance.SearchProviderCollection["SearcherName"];
var searchCriteria = searcher.CreateSearchCriteria();
var query = searchCriteria.Range("price", 50, 500000, true, true);
var results = searcher.Search(query.Compile());
Пожалуйста, перестройте индекс перед запросом.