使用 Jest 在 Elasticsearch 中删除没有 parent 的 child 文档
Delete child documents without parent in Elasticsearch using Jest
正如标题所说,我正在尝试使用 Jest 删除所有 parentless child 文档。如果我做对了,我需要使用 DeleteByQuery,我建议的解决方案是:
val allParentlessChildren = QueryBuilders
.boolQuery()
.mustNot(JoinQueryBuilders.hasParentQuery(
"my_parent",
QueryBuilders.matchAllQuery(),
false)
)
val delete = new DeleteByQuery.Builder(allParentlessChildren.toString)
.addIndex("my_index")
.addType("my_child")
.build()
然而,我得到 routing_missing_exception
。 Investigating online,似乎我需要为路由设置 parent 类型,但是,除了在 hasParentQuery
中指定它之外,我还需要在哪里添加它?
虽然我找到了 some examples 如何使用 REST API,但我找不到使用 Jest 的方法,所以希望有人能帮忙。
我正在使用 Elasticsearch 5.5。
只需要添加路由,然而,在 Jest 中它似乎稍微隐藏在 setParameter
方法中:
val delete = new DeleteByQuery.Builder(allParentlessChildren.toString)
.addIndex("my_index")
.addType("my_child")
.setParameter(Parameters.ROUTING, "my_parent") // <-- added line
.build()
正如标题所说,我正在尝试使用 Jest 删除所有 parentless child 文档。如果我做对了,我需要使用 DeleteByQuery,我建议的解决方案是:
val allParentlessChildren = QueryBuilders
.boolQuery()
.mustNot(JoinQueryBuilders.hasParentQuery(
"my_parent",
QueryBuilders.matchAllQuery(),
false)
)
val delete = new DeleteByQuery.Builder(allParentlessChildren.toString)
.addIndex("my_index")
.addType("my_child")
.build()
然而,我得到 routing_missing_exception
。 Investigating online,似乎我需要为路由设置 parent 类型,但是,除了在 hasParentQuery
中指定它之外,我还需要在哪里添加它?
虽然我找到了 some examples 如何使用 REST API,但我找不到使用 Jest 的方法,所以希望有人能帮忙。
我正在使用 Elasticsearch 5.5。
只需要添加路由,然而,在 Jest 中它似乎稍微隐藏在 setParameter
方法中:
val delete = new DeleteByQuery.Builder(allParentlessChildren.toString)
.addIndex("my_index")
.addType("my_child")
.setParameter(Parameters.ROUTING, "my_parent") // <-- added line
.build()