Я пытаюсь создать btree-индекс для элемента "k" в приведенной ниже структуре json
{
"a":"asd",
"b":{
"key1" : "1234"
"c":{
"d" : "01-OCT-18",
"e" : "xyz",
"f" : 3,
"g":[
{
"h": "abc"
Ниже приведены операторы, которые я использовал, но все еще получаю более медленный ответ, который заставил меня думать, что индекс не применяетсяправильно или есть какой-то другой синтаксис для индексации элементов внутри массивов.
CREATE INDEX "K_BI" ON public."Sample" USING BTREE ((data -> 'a'-> 'b'-> 'c' -> 'g' -> 'h'))
Приведенный ниже подход хорошо работает, если я применяю индекс для дочерних элементов, которые не находятся внутри массива.Я применил индексирование для элементов 'a' и 'key1' и вижу значительную разницу во времени ответа с индексом и без него.
CREATE INDEX "A_BI" ON public."Sample" USING BTREE ((data -> 'a'-> 'b'-> 'key1'))
CREATE INDEX "KEY_BI" ON public."Sample" USING BTREE ((data -> 'a'))
Если у кого-нибудь есть идеи по созданию индекса для элемента внутри массива.т.е. в моем случае для элемента k.