今天遇到了个奇怪的问题,ElasticSearch 删除数据时候报404,但实际记录是存在的。
{"_index":"goods","_type":"_doc","_id":"shop_category_190_17_1574556","_version":1,"result":"not_found","_shards":{"total":1,"successful":1,"failed":0},"_seq_no":672,"_primary_term":4}
折腾了半天都很迷茫,终于发现了原因。
因为我的 _id 并不是一个数字,而是字符串,所以获取、删除时候都需要指定 routing
$client->delete([ 'index' => 'goods', 'id' => 'shop_category_190_17_1574556', 'routing' => '1574556', // 加上这个 ]);