我有一个像上面那样的查询。我试图通过created_at日期按降序对结果进行排序后对结果进行评分,这意味着排序对仅返回订单的内容没有影响。
当我使用排序数组时,它会影响返回的结果。我该如何解决这个问题?谢谢!!!
array:3 [▼
"index" => "quotes"
"type" => "quote"
"body" => array:5 [▼
"from" => 0
"size" => 50
"min_score" => 0
"query" => array:1 [▼
"function_score" => array:1 [▼
"query" => array:1 [▼
"bool" => array:4 [▼
"filter" => array:1 [▼
0 => array:1 [▼
"term" => array:1 [▼
"value_proposition" => "encouraging"
]
]
]
"must_not" => array:3 [▼
0 => array:1 [▼
0 => array:1 [▼
"term" => array:1 [▼
"explicit" => "1"
]
]
]
1 => array:1 [▼
0 => array:1 [▼
"term" => array:1 [▼
"explicit" => "1"
]
]
]
2 => array:1 [▼
0 => array:1 [▼
"term" => array:1 [▼
"value_duration" => "ephemeral"
]
]
]
]
"must" => []
"should" => array:18 [▶]
]
]
]
]
"sort" => []
]
]
答案 0 :(得分:0)
所以,
Elasticsearch并不是最好的工具,因此我最终使用PHP的本地排序方法usort
来排序依次为Elasticsearch返回它的结果。但有一点需要注意,通过从排序函数中分离出来,性能得到了显着提高。即我没有使用usort作为高阶函数,定义了上面的函数并将名称作为字符串传递。