如何在 algolia 上连接结果

How to concatenate results on algolia

我希望能够连接数据。 这是一个例子:

[ { "type": "pen", "color": "blue", }, { "type": "glass", "color": "red", }, { "type": "pen", "color": "green", }, { "type": "glass", "color": "violet", }, { "type": "pen", "color": "yellow", }, { "type": "glass", "color": "orange", } ]

然后,如果我搜索笔,我将得到 3 个结果,每种颜色一个结果。 我只想要一个结果。

我尝试使用 distinct,但 algolia distinct 更像是一个过滤器,而不是一个 concat。如果我在属性笔上做一个不同,我会得到一个可能看起来像的结果:

{ "type": "pen", "color": "blue", },

我想得到的是:

{ "type": "pen", "color_list": ["blue", "green", "yellow"] },

我在 algolia/instant-search 文档中找不到类似的内容,所以我想知道该怎么做。是否有真正的工具可以做到这一点,或者至少有一个可以解决问题的 hacky 解决方案?

谢谢

Algolia 不会为您连接,但通常所做的是让您的记录包含两个信息:

  • 这条特定记录代表什么颜色
  • 此产品类型还有哪些其他颜色

这导致:

[{
  "type": "pen",
  "color": "red",
  "color_list": ["red", "blue", "green"]
},
{
  "type": "pen",
  "color": "green",
  "color_list": ["red", "blue", "green"]
},
...]

color设置为可搜索属性,并使用distinct去重结果;然后,您可以获得非常相关的搜索结果,例如 "green pen",这将 return 带有 "color": "green" 的笔记录(例如,您将获得颜色正确的产品图片)但是允许您显示所有其他可用颜色的色样。

希望对您有所帮助! 如果您想更具体地详细说明您的用例,请发表评论:)