通过PUT请求管理Elasticsearch索引与文档操作
使用curl进行Elasticsearch基础操作
curl是一款基于URL语法的命令行工具,支持HTTP协议的GET、POST等请求方式,常用于与远程服务交互。在CentOS系统中通常已预装,若缺失可通过yum安装。
常用curl参数说明
-X:指定HTTP请求方法(如GET、PUT、POST、DELETE)-d:传递请求体数据-H:自定义请求头信息
创建索引
通过PUT请求创建名为 blog01 的索引:
curl -X PUT "http://node01:9200/blog01?pretty"
添加文档
向索引 blog01 中的类型 article 添加ID为 1 的文档,需显式声明内容类型:
curl -X PUT "http://node01:9200/blog01/article/1?pretty" \
-H "Content-Type: application/json" \
-d '{"id": "1", "title": "What is lucene"}'
查询文档
获取指定ID的文档内容:
curl -X GET "http://node01:9200/blog01/article/1?pretty" \
-H "Content-Type: application/json"
更新文档
覆盖原有文档内容,更新标题字段:
curl -X PUT "http://node01:9200/blog01/article/1?pretty" \
-H "Content-Type: application/json" \
-d '{"id": "1", "title": "What is elasticsearch"}'
搜索文档
根据标题字段搜索匹配项:
curl -X GET "http://node01:9200/blog01/article/_search?q=title:'elasticsearch'&pretty" \
-H "Content-Type: application/json"
删除文档
移除指定ID的文档:
curl -X DELETE "http://node01:9200/blog01/article/1?pretty"
删除索引
彻底移除整个索引及其所有数据:
curl -X DELETE "http://node01:9200/blog01?pretty"
响应结果解析
hits:搜索结果集
返回结果中的核心部分是 hits,包含:
total:匹配到的文档总数hits数组:前10条匹配结果,每条包含_index、_type、_id和完整的_source字段(即原始文档内容)_score:文档与查询的相关性评分,值越高表示越匹配,结果按降序排列max_score:所有匹配文档中的最高评分
took:执行耗时
单位为毫秒,表示整个查询请求所花费的时间。
shards:分片状态
展示参与查询的分片数量及成功/失败情况。正常情况下应全部成功。若部分分片不可用(如数据丢失),仍可返回其余有效分片的结果。
timeout:超时控制
默认无超时限制。若需控制响应时间,可设置超时阈值:
GET /_search?timeout=10ms
当达到设定时间后,即使未完成全部分片处理,也将返回已获取的结果。