Solr для удаления граненого поля, когда у него нет данных
Работа с Solr для проекта ASP.net с использованием библиотеки Solrnet.
При выполнении запроса с полем Faceted, установленным в true, для нескольких полей, он возвращает также пустые граненые поля в результатах. Есть ли способ, с помощью которого мы можем поручить Solr удалить те граненые поля, которые не имеют никакого результата.
Таким образом, окончательные результаты не включают в себя ни одного фасетного поля без данных. Я не имею в виду параметр min.count, это прекрасно работает. Но я имею в виду поле фасет, которое остается там, даже если внутри него нет данных.
Пожалуйста, прокомментируйте, если вы не поняли мою точку зрения. Заранее спасибо за помощь.
2 ответа
Установите для facet.mincount значение 1.
Это гарантирует, что будут возвращены фасеты хотя бы с одной записью. По умолчанию значение равно 0.
Изменить:- Извините, не получил здесь фасетку. Грани всегда возвращаются, если в них даже нет совпадений. Таким образом, обработка должна быть на стороне клиента.
Если вы хотите удалить фасеты с числом = 0, вам нужно оптимизировать ядро. Это один из способов, которые я нашел. Я проверил это на SOLR версии 6.3.X
Чтобы оптимизировать ядро, перейдите на страницу администрирования SOLR и выберите ядро, которое вы хотите оптимизировать. или используйте CURL.
CURL будет выглядеть так -
curl http://<host_name>:8983/solr/<core_name>/update -F stream.body=' <optimize />'
Надеюсь это поможет!