#php #solr
#php #solr
Вопрос:
Как добавить больше полей в фасет, отличных от стандартных, с помощью SOLR? Например, solr возвращает это поле фасета и количество в фасете, но я хочу получить другие поля также вместе с фасетами. Пожалуйста, помогите
Например: — Если мне нужно создать фасет категории, SOLR вернет только название категории и количество в фасете. итак, если я хочу добавить еще одно поле, например category_id, также с этим фасетом, как я могу это сделать?
Редактировать: — Я хочу, чтобы фасеты категорий имели такой формат.
категория: [ { имя: «Мобильные телефоны», numDocs: 1002, category_id: 1719 }, { имя: «Батареи», numDocs: 543, category_id: 1533, } ]
Ответ №1:
Вы ознакомились с документацией по параметрам facet?
Я не совсем понимаю ваш вопрос, но я подозреваю, что смотрю на facet.запрос, а также теги и исключающие фильтры могут быть правильным направлением для исследования.
Комментарии:
1. пожалуйста, проверьте вопрос сейчас для уточнения
Ответ №2:
Решение заключается в использовании «appends» вместо «defaults» в файле solrconfig
Это пример:
<lst name="appends">
<str name="facet.field">field1</str>
<str name="facet.field">field2</str>
</lst>
Дело в том, что с любым разделом, помеченным как «defaults», это означает, что это значения по умолчанию, и если значение не указано в URL, используется значение по умолчанию. Однако, если значение передается через URL, эти значения игнорируются.
Насколько я понимаю, вам нужно сделать наоборот. Вы хотите указать необязательное значение из URL-адреса и при этом иметь возможность добавлять значения из файла конфигурации. Итак, в этом случае вы помещаете свои конфигурации в раздел «добавления», а не «значения по умолчанию». Потому что значения по умолчанию перезаписываются параметрами URL.
Приветствия.
Комментарии:
1. каким будет запрос solr для добавления полей в URL? можете ли вы привести мне какой-нибудь пример
2. запрос sorl будет таким же, как обычно, и вы просто добавите дополнительные параметры, например: server / core / select? q = что угодно amp;facet.field=field3