Does _delete_by_query need a plugin or not? ES version 5.5

Thanks for the reply, as well as version change suggestion, I'll look into that!

So, my query is like this:

POST <index_name>/_delete_by_query?routing=<parent_type>
{
  "query" : {
    "bool" : {
      "must_not" : [
        {
          "has_parent" : {
            "query" : {
              "match_all" : {
                "boost" : 1.0
              }
            },
            "parent_type" : <parent_type>,
            "score" : false,
            "ignore_unmapped" : false,
            "boost" : 1.0
          }
        }
      ],
      "disable_coord" : false,
      "adjust_pure_negative" : true,
      "boost" : 1.0
    }
  }
}

I've tried both that and POST <index_name>/<child_type>/_delete_by_query?routing=<parent_type> with the same query. When child type is specified, the record is inserted in the ES with _id="_delete_by_query", but when I leave it out I get that invalid_type_name_exception.

However, I did decent amount of digging and found this topic that seems to be related to my issue. I indeed run an embedded instance for testing purposes, and _delete_by_query is not supported there. The workaround mentioned was to include reindex plugin in the elasticsearch configuration. I haven't been able to make that workaround work, but in the end, as the last comment on that thread says, it's not a reliable solution.

In the end, I'll most likely drop this unit test that I had trouble with, and only rely on the integration test that uses a standalone elasticsearch server, which does support _delete_by_query.