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 />'

Надеюсь это поможет!

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