0

我正在尝试使用按查询删除API从弹性搜索中删除记录

执行:

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

但仍然返回结果?

4

1 回答 1

3

您正在使用查询进行删除,term并且您正在使用match查询进行搜索。这是两个不同的查询。term查询不会分析提供的查询词,而会分析match。因此,这两个查询可能会根据您的record id字段的分析方式产生不同的结果。

于 2013-05-03T13:44:54.217 回答