Сортировать по нескольким значениям на основе вложенного документа - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь переместить мой механизм сортировки из приложения в эластичный поиск, но безрезультатно. Все, что я хочу сделать, это отсортировать возвращенные документы по эластичности по вложенной цене товара и доступному количеству. Просто как заказ типа sql как

order by Quantity desc, Price asc

Вот сокращенный возврат эластичного поиска в Кибане

"_index": "product_index",
"_id": "1",        
"_source": {                       
    "id": 1
    },
    "sort": [          
          5.9
        ],
        "inner_hits": {
          "variants": {
            "hits": {
              "total": 2,
              "hits": [
                {
                  "_nested": {
                    "field": "variants",
                    "offset": 2
                  },
                  "_score": 0,
                  "_source": {                    
                    "offer_state": 3,
                    "stock_quantity": 2,                    
                    "gross_price": 5.9,                                     
                  }
                },
                {
                  "_nested": {
                    "field": "variants",
                    "offset": 1
                  },
                  "_score": 0,
                  "_source": {                    
                    "offer_state": 3,
                    "stock_quantity": 5,                    
                    "gross_price": 21.9,                    
                  }
                }
              ]
            }
          }
        }

и запрос на сортировку передан в эластичный

"sort": [
    {
      "variants.gross_price": {
        "order": "asc",
        "nested_filter": {
          "bool": {
            "filter": [
              {
                "term": {
                  "variants.offer_state": {
                    "value": 3
                  }
                }
              },
              {
                "range": {
                  "variants.gross_price": {
                    "gt": "0"
                  }
                }
              }              
            ]
          }
        },
        "nested_path": "variants"
      }
    }
  ]

Как включить каскадную сортировку на основе вложенного документа? Мой ожидаемый результат - 21,9 в возвращенном "sort": [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...