Создание индекса Btree для элементов json внутри вложенного массива - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь создать 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.

...