考虑使用此PHP数组来定义elasticsearch上的搜索查询
$searchParams = [
'index' => $index_name,
'type' => 'nginx-access',
'size' => 1000,
'sort' => ['_score'],
'fields' => ["remote_addr", "@timestamp", "request", "method", "status"],
'body' => [
// 'min_score' => 4,
'query' => [
'bool' => [
'must' => [
['match' => ['status' => '200']],
['match' => ['method' => 'POST']],
['match' => ['request' => '/wp-login.php']],
],
]
]
]
];
$results = $this->client->search($searchParams);
var_dump($results);
请注意'min_score'已注释掉。结果数组按预期返回所有内容,但是我仅需要符合所有条件的结果。我认为这就是query-> bool->必须要做的事情,但是在数据集的末尾附近我也会得到其他看似随机的东西。
如果我用min_score运行它,那么我总是会得到我想要的结果,但这似乎不是正确的方法。
我错过了一些明显的东西吗?