如何将结果连接到阿尔戈利亚

时间:2019-01-04 12:56:12

标签: algolia instantsearch.js instantsearch

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

[   {     “ type”:“ pen”,     “ color”:“蓝色”,   },   {     “ type”:“玻璃”,     “红色”,   },   {     “ type”:“ pen”,     “ color”:“绿色”,   },   {     “ type”:“玻璃”,     “ color”:“紫”,   },   {     “ type”:“ pen”,     “ color”:“黄色”,   },   {     “ type”:“玻璃”,     “颜色为橙色”,   } ]

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

我尝试使用一个独特的东西,但是阿尔戈利亚独特的东西更像是一个过滤器,而不是一个concat。如果我在属性笔上做一个不同的显示,我将得到一个可能看起来像这样的结果:

{     “ type”:“ pen”,     “ color”:“蓝色”,   }

我想获得的是:

{     “ type”:“ pen”,     “ color_list”:[“蓝色”,“绿色”,“黄色”]   }

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

谢谢

1 个答案:

答案 0 :(得分:1)

阿尔及利亚不会为您串联,但是通常要做的是让您的记录保存两个信息:

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

这将导致:

[{'a': 1, 'b': 105, 'c': 20}, {'a': 2, 'b': 99, 'c': 25}]

[{ "type": "pen", "color": "red", "color_list": ["red", "blue", "green"] }, { "type": "pen", "color": "green", "color_list": ["red", "blue", "green"] }, ...] 设置为可搜索的属性,并使用color去重复结果;然后,您可以获得与搜索结果非常相关的结果,例如“绿色笔”,它会返回带有distinct的笔记录(例如,您的产品图片具有正确的颜色),但可以显示颜色所有其他可用颜色的色板。

我希望这会有所帮助! 如果您想更详细地说明用例,请发表评论:)