Siji
Siji

Reputation: 51

ElasticSearch Delete by query not working in PHP

I am using Elastic search 5.x and the following code is working fine:

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:

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

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

        ]       
    ]

]);

Upvotes: 3

Views: 5535

Answers (2)

Ben Ahmed Nejib
Ben Ahmed Nejib

Reputation: 197

this an old question, previous comments don't work anymore in 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
            ]
        ]
    ]

Upvotes: 2

Mariusz
Mariusz

Reputation: 246

You need to provide your query array inside body array of your parameters:

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

Upvotes: 6

Related Questions