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
.