Algolia 不处理 ORs of ANDs 过滤条件

Algolia not handle ORs of ANDs filter condition

我正在使用 Algolia 作为搜索引擎,我想按如下方式从 algolia 获取结果

  1. 如果visibility = everyone,那么它将向所有用户显示

  2. 如果 visibility = private,那么它只会为登录用户

为此,我尝试了

filter="visibility:everyone" OR  ("visibility:me" AND "user.username:testuser")

但它return低于错误

{
  "message": "filters: filter (X AND Y) OR Z is not allowed, only (X OR Y) AND Z is allowed",
  "status": 400
}

我怎样才能改变条件来实现上述情况?

任何帮助将不胜感激,并提前致谢。

条件可以简化为

filter="visibility:everyone" OR "user.username:testuser"

与 Algolia 配合使用。

P.S。为了使其更安全,请将过滤器直接指定给 secured API key,不要直接将其与查询一起发送。

尝试通过两次实现 NOT 将 And Gate 更改为 OR Gate 针对您的情况

不("visibility:everyone" 和(不"visibility:me" 或不"user.username:testuser"))