@DamskiyUgodnik

Как сделать разную сортировку товаров в зависимости от категории в Elasticsearch?

Есть каталог, строится который через связку MySql + Elasticsearch (MySql как основное хранилище, Elasticsearch - как система фильтрации товаров которые надо показать в категориях).

Дополнительно:
  • Карточка товара - может отображаться в разных категориях
  • Карточка товара - может иметь несколько тэгов
  • Товаров ~50к
  • Категорий ~3000


В эластике сейчас это имеет примерно такую структуру:

$params = [
    'index' => 'products_cards',
    'body' => [
        'mappings' => [
            'properties' => [
                'price' => [
                    'type' => 'float'
                ],
                'id_brand' => [
                    'type' => 'integer'
                ],
                'categories' => [
                    'type' => 'integer'
                ],
                'tags' => [
                    'type' => 'integer'
                ],
                'prop' => [
                    'type' => 'object',
                    'properties' => [
                        'weight' => [
                            'type' => 'integer',
                        ],
                        'material' => [
                            'type' => 'keyword',
                        ],
                    ]
                ],
            ],

        ]
    ]
];


Всё замечательно с выборками товаров по необходимым категориям, тэгам и параметрам. Но появилась необходимость, сделать в каждой категории свою сортировку.

Т.к. с Elasticsearch первый опыт (да и вообще опыта с NoSql крайне мало), с ходу в голову не приходит никакого адекватного решения.
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Задавать в коде разные сортировки под разные условия. Поиску пофиг вообще на такие вещи и его задача выдавать релевантные значения. Это не база данных
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 300 000 до 400 000 ₽
LIME Москва
от 280 000 до 350 000 ₽
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект