Сортировка Elasticsearch по nested_filter дает нежелательный вывод - PullRequest
1 голос
/ 10 июня 2019

Я использую эластичный поиск 5.6.1, и я пытаюсь отсортировать продукты по последовательности продуктов, в которой существует категория продуктов (продукт принадлежит категории)

В запросе я использую nested_filter для вложенного свойства customerCategory. На основе запроса только продукты, для которых customerCategory.customerCategoryId установлено на 2e3738cc4d984053b1b0a9ba00273698, должны быть отсортированы по ключу customerGroupProductSequence.4280233F-62F1-4EBC-9DF0-F7132B51CA5E (этот ключ имеет значение типа long для сортировки).

Результат запроса не тот, который я ожидал, так как он по-прежнему возвращает товары из всех категорий. Может кто-нибудь подсказать, что я делаю не так? Спасибо

Мой запрос

{
   "sort":[
      {
         "customerGroupProductSequence.4280233F-62F1-4EBC-9DF0-F7132B51CA5E":{
            "order":"asc",
            "nested_path": "customerCategory",
            "nested_filter": {
                  "term": {
                       "customerCategory.customerCategoryId": "2e3738cc4d984053b1b0a9ba00273698"
                   }
            }
         }
      }
   ],
   "query":{
     "match_all": {}
     }
}

Отображение:

{
   "mappings":{
      "product":{
         "properties":{
            "customerCategory":{
               "type":"nested",
               "properties":{
                  "customerCategoryId":{
                     "type":"text"
                  }
               }
            },
            "customerGroupProductSequence":{
               "properties":{
                  "4280233F-62F1-4EBC-9DF0-F7132B51CA5E":{
                     "type":"long"
                  },
                  "4723A2A5-FA73-4DBF-8399-54A02AA621DA":{
                     "type":"long"
                  },
                  "63602693-2F57-4E79-AEFB-89FAD17EC09D":{
                     "type":"long"
                  },
                  "comparer":{
                     "type":"object"
                  },
                  "count":{
                     "type":"integer"
                  },
                  "item":{
                     "type":"integer"
                  },
                  "keys":{
                     "properties":{
                        "count":{
                           "type":"integer"
                        }
                     }
                  },
                  "values":{
                     "properties":{
                        "count":{
                           "type":"integer"
                        }
                     }
                  }
               }
            }
         }
      }
   }
}

Пример данных

{
   "customerGroupProductSequence":{
      "4280233F-62F1-4EBC-9DF0-F7132B51CA5E":1
   },
   "customerCategory":[
      {
         "customerCategoryId":"276b2cd00ce64666a3b25a543b38d3a4"
      },
      {
         "customerCategoryId":"2e3738cc4d984053b1b0a9ba00273698"
      }
   ]
},
{
   "customerGroupProductSequence":{
      "4280233F-62F1-4EBC-9DF0-F7132B51CA5E":2
   },
   "customerCategory":[
      {
         "customerCategoryId":"276b2cd00ce64666a3b25a543b38d3a4"
      },
      {
         "customerCategoryId":"00000000000000000000000000000000"
      },
     ]
}
...