Elasticsearch:v7.2
应用:Laravel v5.7
这是我的Elasticsearch系列与此question的延续。
从MySql迁移到Elasticsearch的结果是,我们以前的数据库表需要从另一个表中产生JOINED
个结果。当我们将数据库表转换为Elasticsearcch索引时,我们将假设为JOINED
的结果转换为索引中的NESTED
对象
我们现在能够从nested
对象中获取具有正确参数的特定文档,例如:在web
索引中使用具有{{1 }},共csr
现在,我们的难题是,我们应该对这些文档进行排序,比方说,我能够从csr.csr_story_value
到3
的{{1}}范围内获取文档,但是需要分别以csr.csr_story_value
和3
的方式4
这是我的代码:
SORT
问题是,文档没有被整理。我是否缺少某些对Elasticsearch嵌套对象排序的查询?
样本输出(仍未排序):
答案 0 :(得分:0)
经过一系列的试验和错误,我应该刚刚删除了range
查询,并添加了mode
中的avg
。我现在的工作查询:
$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" => (string)$parseParams['client_media_xref---kgp_id']
]
]
]
]
]
],
"mode" => "avg"
]
];