Algolia不处理ANDs过滤条件的OR

时间:2017-03-08 09:46:54

标签: filter logic algolia

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

  1. 如果visibility = everyone,则会向所有用户显示

  2. 如果visibility = private,则只会为登录用户

  3. 要实现这一点,我试过

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

    但它返回错误

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

    如何改变条件以实现上述情况?

    任何帮助都会提前感谢并感谢。

2 个答案:

答案 0 :(得分:1)

条件可以简化为

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

与Algolia合作。

P.S。为了更安全,请将过滤条件直接指定为secured API key,不要直接使用查询发送。

答案 1 :(得分:1)

尝试通过两次实现NOT将AND Gate更改为OR Gate 为你的情况

NOT("可见性:每个人" AND(不是"可见性:我"或者不是" user.username:testuser")