如何通过Curl方式进行ElasticSearch增删改查( 二 )

如何通过Curl方式进行ElasticSearch增删改查

文章插图
上面的命令使用HTTP POST方法向名为"users"的索引中name为“jgt”的所有文档的年龄为30 。其中:
 -X选项指定HTTP请求的方法-H选项指定HTTP请求的头部信息-d选项指定HTTP请求的数据体"query"字段表示查询条件:"term"表示匹配字段的值等于给定值,"name"字段表示要匹配的字段,"jgt"表示要匹配的值 。"script"字段表示更新脚本:"source"表示要执行的脚本,"ctx._source.age"表示要更新的字段,"params"表示要传入的参数,"new_age"表示要更新成的新值 。除了使用Update By Query API,还可以使用Bulk API和Update API对数据进行更新 。
Bulk API可以批量处理多个文档的更新、插入和删除操作 。以下是一个使用curl批量更新文档的示例:
curl -XPOST "http://127.0.0.1:9200/users/_bulk" -H "Content-Type: application/json" -d '{ "update": {"_id": "1", "_index": "users"} }{ "doc": {"age": 16} }{ "update": {"_id": "2", "_index": "users"} }{ "doc": {"age": 16} }'上面的命令使用HTTP POST方法向名为"users"的索引中批量更新文档的age 。其中:-X选项指定HTTP请求的方法,-H选项指定HTTP请求的头部信息,-d选项指定HTTP请求的数据体,"update"表示更新操作,"_id"表示要更新的文档ID,"_index"表示要更新的索引名,"doc"表示要更新的字段和值 。
Update API可以对单个文档进行更新操作 。以下是一个使用curl更新单个文档的示例:
curl -XPOST "http://127.0.0.1:9200/users/_doc/1/_update" -H "Content-Type: application/json" -d '{ "doc": { "age": 16 }}'上面的命令使用HTTP POST方法向名为"users"的索引中更新ID为1的文档的age为16 。其中,-X选项指定HTTP请求的方法,-H选项指定HTTP请求的头部信息,-d选项指定HTTP请求的数据体,"_doc"表示要更新的文档类型,"1"表示要更新的文档ID,"doc"表示要更新的字段和值 。
需要注意的是,Bulk API和Update API都支持批量操作和复杂的更新操作,可以根据具体需求进行使用 。同时,更新操作会修改原始数据,因此需要谨慎操作 。
3、删除记录进行一次类似如下update的操作
delete from userswhere name='jgt可以使用Elasticsearch的Delete By Query API和Delete API来删除数据 。
Delete By Query API可以根据特定条件删除文档 。以下是一个使用curl删除满足条件的文档的示例:
curl -XPOST "http://127.0.01:9200/users/_delete_by_query" -H "Content-Type: application/json" -d '{ "query": { "term": { "name": "att" } }}'上面的命令使用HTTP POST方法向名为"users"的索引中删除"name"为"att"的所有文档 。其中,-X选项指定HTTP请求的方法,-H选项指定HTTP请求的头部信息,-d选项指定HTTP请求的数据体,"query"字段表示查询条件,"term"表示匹配字段的值等于给定值,"name"字段表示要匹配的字段,"att"表示要匹配的值 。
Delete API可以删除单个文档 。以下是一个使用curl删除单个文档的示例:
curl -XDELETE "http://127.0.0.1:9200/users/_doc/1"上面的命令使用HTTP DELETE方法向名为"users"的索引中删除ID为1的文档 。其中,-X选项指定HTTP请求的方法,"_doc"表示要删除的文档类型,"1"表示要删除的文档ID 。
需要注意的是,删除操作会永久删除数据,因此需要谨慎操作 。建议在进行删除操作前进行备份操作,以防止误操作造成数据丢失 。
4、查询记录Elasticsearch提供了丰富的查询方式,可以根据具体的业务需求进行选择 。以下是几种常用的查询方式:
(1)Match Query根据给定的查询条件在指定字段中进行匹配 。例如,下面的查询可以匹配"my_field"字段中包含"my_value"的文档:
{ "query": { "match": { "my_field": "my_value" } } }具体示例如下:
 curl -XGET "http://127.0.0.1:9200/users/_search?pretty" -H "Content-Type: application/json" -d '{"query": {"match": {"name": "tt"}}}'查询结果如下:


推荐阅读