Elasticsearch: v7.2
Применение: Laravel v5.7
Это продолжение моей серии Elasticsearch с этим вопросом .
В результатепри переходе с MySql на Elasticsearch наши прежние таблицы базы данных должны выдавать JOINED
результаты из других таблиц.Когда мы превратили нашу таблицу базы данных в индексы Elasticsearcch, мы преобразовали предполагаемые результаты JOINED
в объект NESTED
в наших индексах
Теперь мы можем получать конкретные документы с правильными параметрами изОбъект nested
, такой как: поиск документов в нашем индексе web
с полем csr
, которое имеет csr.csr_story_value
из 3
Теперь наша дилемма заключается в том, что мы должны отсортировать эти документыскажем, я смог получить документы с диапазоном csr.csr_story_value
от 3
до 4
, но мне нужно SORT
их соответственно desc
и asc
способом.
Это мой код:
$temp =
[
"csr.csr_story_value" => [
'order' => $order,
'nested' => [
'path' => 'csr',
'filter' => [
"bool" => [
"must" => [
[
"match" => [
"csr.cli_id" => $parseParams['client_media_xref---cli_id']
]
],
[
"match" => [
"csr.kgp_id" => $parseParams['client_media_xref---kgp_id']
]
],
[
"range" => [
"csr.csr_story_value" => [
"gte" => (int)$parseParams['cmx_story_rank---csr_story_rank'],
"lt" => (int)($parseParams['cmx_story_rank---csr_story_rank'])
]
]
]
]
]
],
]
]
];
$params['body']['sort'] = $temp;
Проблема в том, что документы не были отсортированы.Я что-то пропускаю или какие-либо запросы для сортировки вложенных объектов Elasticsearch?
Пример вывода (все еще не отсортирован):
