Добрый день, имеется следующая задача:
БД PostgreSQL, в таблице имеется JSONB поле, для него создан GIN индекс, в этом поле хранятся атрибуты продуктов: {"attrName1":"value1", "attrName2":"value2"} кол-во атрибутов и их названия заведомо неизвестны.
Необходимо организовать фильтр по атрибутам, пользователь выбирает галочками несколько значений для произвольного атрибута attrName1("value1", "value2", "value3",...).
Теперь собственно вопрос, как составить грамотно запрос, чтобы выборка происходила с учетом индексов?
... WHERE attributes->>'attrName1' IN ("value1","value2",...)
- ищет без индексов, если добавить attributes->>'attrName1' в индекс то ищет с индексами, но я не знаю наперед какие атрибуты будут,
...WHERE attributes @> '{"attrName1":"value1"}' - ищет с индексами но только по одному значению.
С PostgreSQL работаю совсем недавно, но в документации по своему вопросу ничего не нашел, а может плохо искал...