Elasticsearch 1.7.3如何通过含/的ID查询或更新文档
Elasticsearch 1.7.3 通过ID查询/更新文档的正确方式
你之前的请求失败主要有两个原因:
- 错误指定了文档类型:实际文档的
_type是doc,但你用了entity - 索引名和文档ID中的特殊字符未做URL转义:索引名里的
&、ID里的:和/属于URL特殊字符,直接传递会被解析错误
一、通过ID查询文档
方式1:直接GET获取(最高效)
将特殊字符转义后发起请求:
GET http://localhost:9200/%26kashyap/doc/avatar%3Aimage%2Fc7aa819e-f323-5728-9c80-0826937145b
转义规则:
&→%26:→%3A/→%2F
方式2:使用_search接口查询
如果需要通过搜索接口实现,在请求体中指定_id的term查询:
POST http://localhost:9200/%26kashyap/doc/_search { "query": { "term": { "_id": "avatar:image/c7aa819e-f323-5728-9c80-0826937145b" } } }
二、通过ID更新文档
使用_update接口,转义特殊字符后传递正确的索引、类型和ID:
POST http://localhost:9200/%26kashyap/doc/avatar%3Aimage%2Fc7aa819e-f323-5728-9c80-0826937145b/_update { "doc": { "username": "new_suhas" } }
请求体中的doc字段用于指定要更新的字段及对应新值。
内容的提问来源于stack exchange,提问作者Suhas Kashyap
相关产品推荐
相关产品推荐

