【问题标题】:Algolia: Filter if attribute existsAlgolia:过滤属性是否存在
【发布时间】:2020-11-26 11:10:10
【问题描述】:

以下数据

[
  {
    "name": "iPhone XR Black 64GB",
    "color": "red"
  },
  {
    "name": "iPhone XS Gold 64GB",
    "color": "blue"
  },
  {
    "name": "Galaxy Note9 Ocean Blue 128GB",
  },
  {
    "name": "G7 ThinQ™ Platinum Gray 64GB",
  },
  {
    "name": "Moto E5 Play 16GB",
  }
]

如果我过滤颜色:红色,它应该返回符合以下条件的记录。

  1. 如果颜色属性存在,它应该是红色的。
  2. 如果颜色属性不存在。

输出将是

[
  {
    "name": "iPhone XR Black 64GB",
    "color": "red"
  },
  {
    "name": "Galaxy Note9 Ocean Blue 128GB",
  },
  {
    "name": "G7 ThinQ™ Platinum Gray 64GB",
  },
  {
    "name": "Moto E5 Play 16GB",
  }
]

Click here for flow chart

【问题讨论】:

    标签: node.js algolia


    【解决方案1】:

    Algolia 是一个搜索引擎,这意味着它会按原样返回匹配的记录。它不执行任何转换,您不能将逻辑注入引擎的行为。

    使用上述数据集,如果您使用过滤器 "color:red" 运行空搜索 (''),Algolia 将仅返回以下记录:

    {
      "name": "iPhone XR Black 64GB",
      "color": "red"
    }
    

    如果您想要所有记录(不超过 1,000 条记录),则需要执行不带过滤器的空查询。

    【讨论】:

      猜你喜欢
      • 2016-02-27
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 1970-01-01
      • 2019-01-04
      • 2022-08-20
      相关资源
      最近更新 更多