gpt4 book ai didi

ElasticSearch 删除查询 - 使用术语和范围进行过滤

转载 作者:行者123 更新时间:2023-11-29 02:48:05 26 4
gpt4 key购买 nike

我尝试使用以下查询从 ElasticSearch 中删除数据索引。

{
"filter": {
"and": [
{
"range": {
"Time": {
"from": "20120101T000000",
"to": "20120331T000000"
}
}
},
{
"term": {
"Source": 1
}
}
]
}
}

我已尝试根据此查询删除文档。当我针对索引运行该查询时,它返回的结果很好。但是当我尝试对索引运行删除命令时,没有任何反应。

我不确定是我构建的查询错误还是其他原因。

最佳答案

您只使用了一个过滤器,而 delete by query API可能需要查询。您可以使用 filtered query 将过滤器转换为查询像这样:

{
"filtered" : {
"query" : {
"match_all" : {}
},
"filter": {
"and": [
{
"range": {
"Time": {
"from": "20120101T000000",
"to": "20120331T000000"
}
}
},
{
"term": {
"Source": 1
}
}
]
}
}
}

否则,您可以使用 bool query 将过滤器转换为查询带有两个 must 子句,这样您就不再需要过滤查询了。无论如何,我猜过滤器方法更好,因为过滤器更快。

关于ElasticSearch 删除查询 - 使用术语和范围进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12400153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com