Как объединить результаты по Алголии
Я хотел бы иметь возможность объединять данные. Вот пример:
[{"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"
(таким образом, у вас, например, будет изображение товара с правильным цветом), но вы сможете отображать образцы цветов всех других доступных цветов.
Надеюсь, это поможет! Пожалуйста, прокомментируйте, если вы хотите более подробно описать ваш вариант использования:)