Запрос фильтра SOLR на основе условия - PullRequest
0 голосов
/ 30 мая 2018

У меня есть индекс group.У группы есть два типа приватности: публичная и приватная.Частная группа связана с кодом доступа.В результат поиска должна быть включена личная группа, только если у пользователя есть код доступа, связанный с ней.Ранее частные группы не отображались в результатах поиска, поэтому у меня был один простой запрос !privacy_type:private.

Но теперь я должен включить частные группы, если у пользователя есть код доступа для этой группы (у пользователя может быть несколько кодов доступа, и мы должны включить группы с этими кодами доступа).Как использовать условный фильтр, как это?

1 Ответ

0 голосов
/ 30 мая 2018

Пока не существует нескольких групп с одинаковым access_code, и они должны вести себя по-разному (т. Е. Если для access_code должны быть возвращены все группы с этим access_code):

fq=privacy_type:public OR access_code:(access_code_1 access_code_2 access_code_3)

Вы также можете явно указать Solr ИЛИ для каждого оператора в списке access_code - access_code:(access_code_1 OR access_code_2 OR ...), но в этом случае вы сможете удалить его.

В Solr задано максимальное количество логических выражений по умолчаниюкак 1000, так что, пока количество групп доступа на пользователя меньше, это должно работать нормально.

...