SOLR: как исключить поля глобально? - PullRequest
1 голос
/ 04 августа 2020

Я использую apache Solr для поиска по сайту. веб-сайт имеет большое количество страниц, и на каждой странице есть поле под названием « searchEnabled ». Это логическое поле содержит значения true или false . Я хочу исключить отключенные страницы из всех результатов поиска (на сайте есть несколько разных поисковых запросов), если в поле searchEnabled установлено значение false .

Я могу используйте запрос фильтра (fq), чтобы исключить это поле. Но мой сайт использует несколько разных поисковых запросов с разными запросами. Я не хочу добавлять фильтрующий запрос во все поисковые запросы на сайте. Есть ли простой способ отключить индексы с полем searchEnabled, установленным в false?

Чтобы ни один поиск solr не возвращал документ / страницы, где значение поля установлено на false .

1 Ответ

3 голосов
/ 04 августа 2020

Вы можете добавить параметр, который всегда будет присутствовать в solrconfig.xml для обработчика запросов, с которым вы делаете запрос к .

Используя имя appends для вашего список параметров, параметр будет всегда добавлен к другим заданным параметрам.

<requestHandler name="/select" class="solr.SearchHandler">
  <lst name="appends">
    <str name="fq">searchEnabled:true</str>
  </lst>
</requestHandler>

Это всегда будет добавлять запрос фильтра к вашим запросам за кулисами, которые ограничивают набор результатов теми документы, в которых searchEnabled установлено на true.

...