【问题标题】:How to concatenate results on algolia如何在 algolia 上连接结果
【发布时间】:2019-05-31 01:16:24
【问题描述】:

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

[ { “类型”:“笔”, “颜色”:“蓝色”, }, { “类型”:“玻璃”, “红色”, }, { “类型”:“笔”, “颜色”:“绿色”, }, { “类型”:“玻璃”, “颜色”:“紫色”, }, { “类型”:“笔”, “颜色”:“黄色”, }, { “类型”:“玻璃”, “颜色为橙色”, } ]

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

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

{ “类型”:“笔”, “颜色”:“蓝色”, },

我想得到的是:

{ “类型”:“笔”, “color_list”:[“蓝色”、“绿色”、“黄色”] },

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

谢谢

【问题讨论】:

    标签: algolia instantsearch.js instantsearch


    【解决方案1】:

    Algolia 不会为您连接,但通常的做法是让您的记录保存两个信息:

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

    结果:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-10-08
      • 2019-01-31
      • 1970-01-01
      • 2010-11-23
      • 2019-01-06
      • 2020-10-03
      • 2020-01-02
      • 2016-01-16
      • 1970-01-01
      相关资源
      最近更新 更多