我正在尝试使用delete by query API
从elasticsearch中删除记录执行:
curl -XDELETE localhost:4040/search/foo/_query -d '{
"term": {
"record id": "0f9eaa6f-90bb-4dee-9ecb-78a5d04719c0"
}
}'
结果:
{
"ok": true,
"_indices": {
"foo": {
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
}
}
}
}
然后,查询:
curl -XGET localhost:4040/search/foo/_search -d '{
"query": {
"match": {
"record id": "0f9eaa6f-90bb-4dee-9ecb-78a5d04719c0"
}
}
}'
给了我:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
}
}
打印了5条记录......
我试过跑:
curl -XGET localhost:4040/search/foo/_refresh
但仍会返回结果?
答案 0 :(得分:3)
您正在使用term
查询进行删除,而您正在使用match
查询进行搜索。这是两个不同的查询。在term
执行时,match
查询不会分析提供的查询字词。因此,根据您对record id
字段的分析方式,这两个查询可能会产生不同的结果。