Алголия: индекс фильтра по атрибуту массива строк с массивом строк возможных значений

У меня есть индекс Algolia, который содержит такие объекты:

 id: 2,
 name: test,
 important: ["lorem", "ipsum", "dolor", "sit", "amet"]

Я хочу получить все записи, которые, например. содержать либо "dolor", либо "sit".

Как бы я это сделал?

Примечание. Это всего лишь пример, importantarray каждой записи обычно содержит от 1 до 4 значений (всего около 1000 возможных значений). Массив для фильтрации или поиска может содержать от 1 до 400 значений.


Что, на мой взгляд, не работает:

  • поиск в значениях фасетов с помощью facetQuery: facetQuery не позволяет использовать логические операторы. Поэтому я могу одновременно искать только один из "dolor" или "sit", см. документы.

  • Однако фильтрует документы.

Нечисловые атрибуты (например, строки) необходимо настроить как категории, которые мы называем фасетами.

Вот мне интересно, возможно ли это вообще...? Или может я неправильно подхожу к этому вопросу?


person bergben    schedule 13.10.2018    source источник


Ответы (1)


Вы смотрите в нужное место и вам нужно объединить атрибуты ForFaceting и фильтры:

  • set the important attribute as an attributesForFaceting either via API or the Dashboard
    • then use the filters to filter on your desired values

Ваш фильтр будет выглядеть так: { "filters": "important:dolor OR important:sit" }

person Ajay D.    schedule 13.10.2018