简体   繁体   English

ElasticSearch 按查询删除在 PHP 中不起作用

[英]ElasticSearch Delete by query not working in PHP

I am using Elastic search 5.x and the following code is working fine:我正在使用 Elastic search 5.x 并且以下代码工作正常:

curl -XPOST "http://localhost:9200/test_index/test_info/_delete_by_query" -d'
{
  "query": {
    "match": {
        "category_id": "21"
    }
  }
}'

But when I am trying the same in my php code, its not working:但是当我在我的 php 代码中尝试相同时,它不起作用:

$client->deleteByQuery([
'index' => 'test_index',
'type'  => 'test_info',

    'query' => [
        'match' => [
                ['category_id' => 21]

        ]       
    ]

]); ]);

You need to provide your query array inside body array of your parameters:您需要在参数的body数组中提供query数组:

$client->deleteByQuery([
    'index' => 'test_index',
    'type' => 'test_info',
    'body' => [
        'query' => [
            'match' => [
                ['category_id' => 21]
            ]
        ]
    ]
]);

this an old question, previous comments don't work anymore in 2020 :这是一个老问题,之前的评论在 2020 年不再适用:

$client->deleteByQuery([
    'index' => 'test_index',
   (there were a type here)  'type' => 'test_info',
    'body' => [
        'query' => [
            'match' => [
                (there were an array here) ['category_id' => 21]
            ]
        ]
    ]
]);

So the final code is :所以最终的代码是:

$client->deleteByQuery([
    'index' => 'test_index',
    'body' => [
        'query' => [
            'match' => [
               'category_id' => 21
            ]
        ]
    ]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM