在对接 ES(Elasticsearch)接口的过程中,我遇到了一个棘手的问题:合作方虽提供了接口,但并未给出响应报文与返回结构。而我需要基于返回字段进行数据统计和页面展示,这就意味着我得先调用接口获取数据,可服务器上还未安装 Kibana
初入公司,对内部技术环境尚不熟悉,为了高效完成工作,我尝试了多种 ES 接口调用方式。其中,使用 PostMan 查询是最快速并且简洁的 —— 如今将这些调用方法汇总成篇,希望能帮助大家少走弯路。
1、浏览器安装ES插件,操作简单,但是需要前期下载插件做一些配置,好处是可以生成查询语句,查询简单
点击下面链接,之前有记录过这次就不详细些了
chrome浏览器安装elasticsearch的head可视化插件
2、使用curl命令,如果查询语句复杂则看数据结构不清晰
查询服务器已有的ES索引有那些?
curl -k https://127.0.0.1:9200/_cat/indices?v --user admin:'8nKVyV3tU05dtfb'
--user 账户:密码
执行GET /_cat/indices?v(v参数显示表头),可能得到如下结果:
health status index uuid docs.count docs.deleted store.size pri rep
green open my_index abc123 1000 0 50mb 1 1
yellow open log_index def456 50000 200 200mb 3 1
health:索引健康状态。
status:索引打开状态(open)或关闭状态(close)。
store.size:索引占用的存储空间。
pri/rep:主分片数和副本分片数。
相关扩展 API
_cat/shards:查看索引分片的详细分布和状态。
_cat/master:查看集群主节点信息。
_cat/nodes:查看集群节点的资源使用情况。
,查询指定索引中uniscId字段=统一代码的数据
-- phycust为索引名称,查询指定索引中uniscId=统一代码的数据
curl -u elastic -X POST "http://127.0.0.1:9200/phycust/_search" -H 'Content-Type: application/json' -d'{"query": {"term": {"uniscId": {"value": "'统一代码'"}}}}'
关键参数说明:
-u elastic
指定使用用户名elastic进行认证(需输入密码),这是 ES 默认的超级用户。
-X POST
HTTP 请求方法为POST,适用于复杂查询。
http://127.0.0.1:9200/phycust/_search
127.0.0.1:9200:ES 服务的本地地址和端口。
phycust:目标索引名称。
_search:搜索 API 端点。
-H 'Content-Type: application/json'
指定请求体格式为 JSON。
-d '{}'
请求体内容(JSON 格式),包含具体查询条件。
查询条件解析
请求体中的 JSON 是一个term查询,功能是精准匹配文档中uniscId字段值为统一代码的记录。
term查询:属于精确匹配,不对搜索词进行分词处理。
uniscId:文档中的字段名,一般用于存储统一社会信用代码。
"统一代码":需要替换为实际的统一社会信用代码值。
3、使用apiPost/PostMan调用,最简单
获取指定索引中的所有字段名称,下图中qu-click-statistic为索引名称
获取ES已有索引
根据查询条件查询指定索引,search-click-statistic为索引名称