Как организовать выборку один из многих в JSONB поле с использованием индекса?

Добрый день, имеется следующая задача:
в таблице имеется JSONB поле, для него создан GIN индекс, в этом поле хранятся атрибуты продуктов: {"attrName1":"value1", "attrName2":"value2"} кол-во атрибутов и их названия заведомо неизвестны.

Необходимо организовать фильтр по атрибутам, пользователь выбирает галочками несколько значений для произвольного атрибута attrName1("value1", "value2", "value3",...).

Теперь собственно вопрос, как составить грамотно запрос, чтобы выборка происходила с учетом индексов?
... WHERE attributes->>'attrName1' IN ("value1","value2",...)
- ищет без индексов, если добавить attributes->>'attrName1' в индекс то ищет с индексами, но я не знаю наперед какие атрибуты будут,
...WHERE attributes @> '{"attrName1":"value1"}' - ищет с индексами но только по одному значению.

С PostgreSQL работаю совсем недавно, но в документации по своему вопросу ничего не нашел, а может плохо искал...
  • Вопрос задан
  • 249 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы