Сложная комбинация И и ИЛИ в страпи (версия 4) фильтрации

Привет, я хочу применить фильтр к API страпи с комбинацией И и ИЛИ, но я не могу заставить его работать.

Ситуация: Я хочу отфильтровать такую ​​​​ситуацию

(
  (tag OR tag2 OR tag3) AND 
  (
    (title CONTAINSI TEXT_FILTER_HERE) OR 
    (body CONTAINSI TEXT_FILTER_HERE) OR 
    (introduction CONTAINSI TEXT_FILTER_HERE)
  )
)

(обратите внимание, что я сократил теги, так как это также должно быть конструкцией)

Я пробовал что-то вроде ссылки ниже и многие другие, но этот пример ниже сделает все из них ситуацией ИЛИ, и я найду слишком много записей.

{{host}/api/blog?sort=publishedAt%3Adesc
&populate=Tags.tags&populate=Image
&pagination[page]=1
&pagination[pageSize]=25
&locale=en
&filters[$or][4][Tags][tags][Tag][$containsi]=TAG1
&filters[$or][6][Tags][tags][Tag][$containsi]=TAG2
&filters[$or][8][Tags][tags][Tag][$containsi]=TAG3
&filters[$or][3][Tags][tags][Tag][$containsi]=TAG4
&filters[$or][5][Tags][tags][Tag][$containsi]=TAG5
&filters[$or][7][Tags][tags][Tag][$containsi]=TAG6
&filters[$or][0][title][$containsi]=FILTER_TEXT_HERE
&filters[$or][2][body][$containsi]=FILTER_TEXT_HERE
&filters[$or][1][introduction][$containsi]=FILTER_TEXT_HERE

(сделал его многострочным для удобства чтения)

Возможно ли это в страпи?

Я могу заставить его работать в ситуации множественного ИЛИ только с одним (1) И, но не с ((или или) И (или или)):

...
&filters[$or][4][Tags][tags][Tag][$containsi] = {{tag1}}
&filters[$or][6][Tags][tags][Tag][$containsi] = {{tag2}}
&filters[$or][8][Tags][tags][Tag][$containsi] = {{tag3}}
&filters[$or][3][Tags][tags][Tag][$containsi] = {{tag4}}
&filters[$or][5][Tags][tags][Tag][$containsi] = {{tag5}}
&filters[$or][7][Tags][tags][Tag][$containsi] = {{tag6}}
&filters[$and][0][title][$containsi] = {{filter}}

или

...
&filters[$or][4][Tags][tags][Tag][$containsi] = {{tag1}}
&filters[$or][6][Tags][tags][Tag][$containsi] = {{tag2}}
&filters[$or][8][Tags][tags][Tag][$containsi] = {{tag3}}
&filters[$or][3][Tags][tags][Tag][$containsi] = {{tag4}}
&filters[$or][5][Tags][tags][Tag][$containsi] = {{tag5}}
&filters[$or][7][Tags][tags][Tag][$containsi] = {{tag6}}
&filters[title][$containsi] = {{filter}}

Любая помощь будет оценена

🤔 А знаете ли вы, что...
Strapi позволяет создавать пользовательские плагины и компоненты.


1
58
1

Ответ:

Решено

Я действительно думаю, что нашел ответ. Не удалось найти нигде в документации (https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest/filtering-locale-publication.html#complex-filtering)

{{host}}/api/blog?sort=publishedAt%3Adesc
&populate=Tags.tags
&populate=Image
&pagination[page]=1
&pagination[pageSize]=25
&locale=en
&filters[$and][0][$or][0][title][$containsi] = {{filter}}
&filters[$and][0][$or][1][introduction][$containsi] = {{filter}}
&filters[$and][0][$or][2][body][$containsi] = {{filter}}
&filters[$and][1][$or][0][Tags][tags][Tag][$containsi] = {{tag1}}
&filters[$and][1][$or][1][Tags][tags][Tag][$containsi] = {{tag2}}
&filters[$and][1][$or][2][Tags][tags][Tag][$containsi] = {{tag3}}
&filters[$and][1][$or][3][Tags][tags][Tag][$containsi] = {{tag4}}
&filters[$and][1][$or][4][Tags][tags][Tag][$containsi] = {{tag5}}
&filters[$and][1][$or][5][Tags][tags][Tag][$containsi] = {{tag6}}

Обратите внимание на разделы [NUMBER], в которых сгруппированы И и ИЛИ... Как только вы это знаете, это выглядит логично :-)