Solr для удаления граненого поля, когда в нем нет данных

Работа с Solr для проекта ASP.net с использованием библиотеки Solrnet.

При запросе с полем Faceted, для которого установлено значение true для нескольких полей, в результатах также возвращаются пустые поля с гранями. Есть ли способ, с помощью которого мы можем указать Solr удалить те граненые поля, которые не имеют никакого результата.

Таким образом, окончательные результаты не включают ни одного фасетного поля без данных. Я не имею в виду параметр min.count, он отлично работает. Но я имею в виду фасетное поле, которое остается там, даже если внутри него нет данных.

Пожалуйста, прокомментируйте, если вы не поняли мою точку зрения. Заранее благодарю вас за помощь.


person Dharmik Bhandari    schedule 10.08.2012    source источник


Ответы (2)


Установите для параметра facet.mincount значение 1.
Это обеспечит фасетам не менее будет возвращена одна запись. По умолчанию значение равно 0.

Редактировать: - Извините, здесь не было аспектной части. Фасеты всегда возвращаются, даже если в них нет совпадений. Таким образом, обработка должна быть на стороне клиента.

person Jayendra    schedule 10.08.2012
comment
Спасибо, Джайендра, но это относится только к значению граненого поля, а не к самому граненому полю. Я хочу, чтобы такое же поведение применялось к граненому полю. - person Dharmik Bhandari; 10.08.2012
comment
ohk . Фасеты всегда возвращаются, даже если в них нет совпадений. Таким образом, обработка должна быть на стороне клиента. - person Jayendra; 10.08.2012

Если вы хотите удалить фасеты со значением count = 0, вам необходимо оптимизировать ядро. Это один из способов, который я нашел. Я протестировал его на SOLR версии 6.3.X.

Чтобы оптимизировать ядро, перейдите на страницу администратора SOLR и выберите ядро, которое хотите оптимизировать. или Используйте CURL.

CURL будет выглядеть так:

curl http://<host_name>:8983/solr/<core_name>/update -F stream.body=' <optimize />'

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

person Sumit Jain    schedule 09.05.2018