Elasticsearch:v7.2
应用:Laravel v5.7
这是我的 Elasticsearch 系列与这个问题的延续。
由于从 MySql 迁移到 Elasticsearch,我们以前的数据库表需要JOINED从另一个表生成结果。当我们将数据库表转换为 Elasticsearcherch Indexes 时,我们将应有的JOINED结果转换为NESTED索引中的对象
我们现在能够从nested对象中获取具有正确参数的特定文档,例如:在我们的web索引中查找具有csr字段的csr.csr_story_value文档3
现在,我们的困境是,我们应该对这些文档进行排序,比方说,我能够获取范围为csr.csr_story_valuefrom 3to的文档,4但需要以and方式SORT相应地获取它们。descasc
这是我的代码:
$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 嵌套对象排序的某些内容或任何查询?
示例输出(仍未排序):
