尝试仅返回多个必须匹配的结果 - elasticsearch

时间:2016-07-05 02:11:39

标签: php elasticsearch

考虑使用此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运行它,那么我总是会得到我想要的结果,但这似乎不是正确的方法。

我错过了一些明显的东西吗?

0 个答案:

没有答案