Как объединить результаты по Алголии

Я хотел бы иметь возможность объединять данные. Вот пример:

[{"type": "pen", "color": "blue",}, {"type": "glass", "color": "red",}, {"type": "pen", "color ":" green ",}, {" type ":" glass "," color ":" violet ",}, {" type ":" pen "," color ":" yellow ",}, {" type ": "стекло", "цвет": "апельсин", } ]

Затем, если я буду искать перо, я получу 3 результата, по одному на каждый цвет. Я хотел бы только один результат.

Я попытался использовать отличное, но отличное от Алголии больше похоже на фильтр, а не на конкат. Если я сделаю отличное для атрибута pen, я получу один результат, который может выглядеть следующим образом:

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

То, что я хотел бы получить это:

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

Я не могу найти ничего подобного в документе algolia/ Instant-Search, поэтому мне интересно, как это сделать. Есть ли реальный инструмент, который может сделать это, или, по крайней мере, хакерское решение, которое может добиться цели?

Спасибо

1 ответ

Решение

Algolia не будет объединять вас, однако обычно в ваших записях хранится две информации:

  • Какого цвета эта конкретная запись представляет
  • какие другие цвета существуют для этого типа продукта

Что приводит к:

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

Настроить color в качестве атрибута поиска и использования distinct дедублировать результаты; тогда вы можете получить весьма релевантные результаты поиска, такие как "зеленое перо", которое вернет запись пера с "color": "green" (таким образом, у вас, например, будет изображение товара с правильным цветом), но вы сможете отображать образцы цветов всех других доступных цветов.

Надеюсь, это поможет! Пожалуйста, прокомментируйте, если вы хотите более подробно описать ваш вариант использования:)

Другие вопросы по тегам