Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用CURL命令操作ES

使用CURL命令操作ES

作者头像
趣学程序-shaofeer
发布于 2019-09-19 07:25:24
发布于 2019-09-19 07:25:24
14.9K00
代码可运行
举报
文章被收录于专栏:upuptop的专栏upuptop的专栏
运行总次数:0
代码可运行

使用CURL命令操作ES

当前文档所用ES版本 6.4.3

ElasticSearch 提供了一系列的Restful风格的API,我们可以使用curl命令进行使用,也可以在kibana中使用。

Restful风格

它是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。 RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。通过不同的请求方法来实现不同的功能。

GET 获取数据 POST 添加数据 PUT 添加数据 DELETE 删除数据

ElasticSearch的核心概念与关系数据库对比

集群常用命令

  • 查看版本
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl  -XGET 'http://hadoop137:9200'
  • 查看集群状态
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET 'http://hadoop137:9200/_cluster/state?pretty'

#这里在url后面添加了pretty是为了让其在控制台上输出的结果是一个优美的json格式

索引库常用命令

  • 查看所有索引信息
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET 'http://hadoop137:9200/_cat/indices?pretty&v'
  • 创建索引
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPUT 'http://hadoop137:9200/upuptop?pretty'
  • 删除索引
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XDELETE 'http://hadoop137:9200/upuptop?pretty'

文档常用命令

  • 创建文档
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 9200/索引库名/文档类型/id/  -d 文档内容
# id可以忽略,ES会自动生成id,如果id存在,那么就是更新数据,字段可以增加

curl -XPOST 'http://hadoop137:9200/upuptop/stu/1?pretty' -H 'Content-Type: application/json' -d '
{
"name":"shaofei",
"age":22,
"sex":1
}'
  • 修改文档
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 给id为1的学生修改姓名为upuptop,年龄修改为25,添加学号字段
curl -XPOST 'http://hadoop137:9200/upuptop/stu/1?pretty' -H 'Content-Type: application/json' -d '
{
"name":"upuptop",
"age":25,
"sex":0,
"number":"1501260222"
}'
  • 查看所有文档
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET 'http://hadoop137:9200/upuptop/stu/_search?pretty'
  • 根据id查看文档
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET 'http://hadoop137:9200/upuptop/stu/1?pretty'
  • 删除文档
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XDELETE 'http://hadoop137:9200/upuptop/stu/1?pretty'

查询命令

ES最主要的功能,搜索,也是就是查询文档。下面我们来看看主要的查询命令吧。

首先搞点数据到ElasticSearch中

这里使用logstash工具将mysql数据库中的数据导入到ES中

对于LogStash的介绍请查看这篇文章:《LogStash的安装部署与应用》。

使用查询命令对数据进行查询。

  1. 根据field来查询数据:

查询name含有‘upuptop'字符串的数据、模糊查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET http://hadoop137:9200/upuptop/stu/_search?q=name="upuptop"
  1. 根据field来查询数据:match

查询name含有‘upuptop'字符串的数据、模糊查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET http://hadoop137:9200/upuptop/stu/_search?pretty  -H 'Content-Type: application/json' -d '
{
 "query":
  {"match":
   {"name":"upuptop"}
  }
}'
  1. 对多个field发起查询:multi_match

查询lastname、firstname含有‘upuptop'字符串的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET http://hadoop137:9200/upuptop/stu/_search?pretty -d '
{
 "query":
  {"multi_match":
   {
    "query":"upuptop",
    "fields":["last_name","first_name"],
    "operator":"and"
   }
  }
}'
  1. 多个term对多个field发起查询:bool(boolean)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 组合查询,must,must_not,should 
#  must + must : 交集
#  must +must_not :差集
#  should+should  : 并集

# 查询 first_name为upuptop并且年龄是33的数据
curl -XGET http://hadoop137:9200/upuptop/stu/_search?pretty -d '
{
 "query":
  {"bool" :
   {
    "must" : 
     {"match":
      {"first_name":"upuptop"}
     },
    "must" : 
     {"match":
      {"age":33}
     }
   }
  }
}'

# 查询 first_name为upuptop并且年龄不是33的数据
curl -XGET http://hadoop137:9200/upuptop/stu/_search?pretty -d '
{
 "query":
  {"bool" :
   {
    "must" : 
     {"match":
      {"first_name":"upuptop"}
     },
    "must_not" : 
     {"match":
      {"age":33}
     }
   }
  }
}'

# 查询 first_name不为upuptop并且年龄不是33的数据
curl -XGET http://hadoop137:9200/upuptop/stu/_search?pretty -d '
{
 "query":
  {"bool" :
   {
    "must_not" : 
     {"match":
      {"first_name":"upuptop"}
     },
    "must_not" : 
     {"match":
      {"age":33}
     }
   }
  }
}'
  1. 查询first_name=upuptop的,或者年龄在20岁到33岁之间的
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XGET http://hadoop137:9200/upuptop/stu/_search -d '
{
 "query":
  {"bool" :
   {
   "must" :
    {"term" : 
     { "first_name" : "upuptop" }
    }
   ,
   "must_not" : 
    {"range":
     {"age" : { "from" : 20, "to" : 33 }
    }
   }
   }
  }
}'
  1. 修改配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
## 创建索引库并设置副本数为2个,默认5个主分片,每个分片有两个副本,一共15个片

curl -XPUT 'http://hadoop137:9200/test2/' -d'{"settings":{"number_of_replicas":2}}'

## 设置3个主分片、3个从分片
curl -XPUT 'http://hadoop137:9200/test3/' -d'{"settings":{"number_of_shards":3,"number_of_replicas":3}}'

curl -XPUT 'http://hadoop137:9200/test4/' -d'{"settings":{"number_of_shards":6,"number_of_replicas":4}}'

## 设置索引的mapping,设置数据类型,分词规则等

curl -XPOST http://192.168.9.11:9200/upuptop/person/_mapping -d'
{
    "person": {
        "properties": {
            "content": {
                "type": "string",
                "store": "no",
                "term_vector": "with_positions_offsets",
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_max_word",
                "include_in_all": "true",
                "boost": 8
            }
        }
    }
}'
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 趣学程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ElasticSearch 索引查询使用指南——详细版
  绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示部分数据因为某些原因不可用.
双面人
2019/04/10
3.7K0
ElasticSearch 索引查询使用指南——详细版
ELK学习笔记之使用curl命令操作elasticsearch
_cat系列提供了一系列查询elasticsearch集群状态的接口。你可以通过执行 curl -XGET localhost:9200/_cat
Jetpropelledsnake21
2019/05/17
1.7K0
Elasticsearch 常用基本查询
安装启动很简单,参考官网步骤:https://www.elastic.co/downloads/elasticsearch
用户7353950
2022/05/10
6960
Windows下ElasticSearch学习(二)
今天继续学习ES 在Windows 下的使用,主要是通过curl 命令行来操作ES: 备注:说明一下ES 的版本为6.8.8.
Wu_Candy
2022/07/04
2610
Elasticsearch 零基础到入门新手教程
Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以一个之前从未有过的速度和规模,去探索你的数据。 它被用作全文检索、结构化搜索、分析以及这三个功能的组合 。
星哥玩云
2022/07/25
3540
Elasticsearch 零基础到入门新手教程
ES 常用Linux查询命令汇总
_cat系列提供了一系列查询elasticsearch集群状态的接口。你可以通过执行
MickyInvQ
2020/09/27
6.4K0
[Elasticsearch] ES 的Mapping 设计在实际场景中应用
项目中有个需求是需要几个字段作为标签,统计各个标签的文档数量,同时支持分词后的全文检索功能。
awwewwbbb
2021/12/27
6800
Elasticsearch 数据搜索篇 转
这种方式会把查询的内容放入body中,会造成一定的开销,但是易于理解。在平时的练习中,推荐这种方式。
双面人
2019/04/10
6240
Elasticsearch 数据搜索篇
                                                                            转
Elasticsearch 数据搜索篇·【入门级干货】
ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API。本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用。虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的特性。 其他相关的内容参考:Elasticsearch官方文档翻译 样例数据 为了更好的使用和理解ES,没有点样例数据还是不好模拟的。这里提供了一份官网上的数据,accounts.json。如果需要的话,也可以去这个网址玩玩,它可以帮助你自定义写随机的JSON数据。 首先开启你的ES,然后执行下面的命令
用户1154259
2018/01/17
9510
通过命令curl 操作ElasticSearch指南
match 如果在全文字段上查询,会使用正确的分析器分析查询字符串;如果精确值字段使用,会精确匹配。 term精确匹配,只要包含了对应的文本就可以,不对文本分析(not_analyzed文本会精确匹配,terms 多个值只要有一个匹配就匹配);
爬蜥
2019/07/09
1.8K0
ElasticSearch入门
    全文搜索属于最常见的需求,开源的 Elasticsearch是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 ElasticSearch 的底层是开源库 Lucene,Elasticsearch 是 Lucene 的封装,它提供了 REST API 的操作接口,开箱即用。
Java架构师必看
2021/05/14
1.2K0
《Learning ELK Stack》5 为什么需要Elasticsearch
5 为什么需要Elasticsearch ---- 为什么是Elasticsearch es是一种在分布式环境中快速、可扩展的搜索和分析引擎。它建立在Apache Lucene上。Lucene定义如下 Apache Lucene是一种高性能、全功能的完全用java写的广西搜索引擎库。它是一种几乎适合于任何需要全文搜索,特别是跨平台的应用程序的技术 Elasticseaarch通过提供强大的RESTful API隐藏了Lucene背后的复杂性,使得查询索引数据更容易,并使其适用于任何编程语言。Elastics
yeedomliu
2020/07/02
6490
Curl操作Elasticsearch的常用方法
Elasticsearch对于文档操作,提供了以下几种API,本文就说明如何使用curl方式来调用这些API。
大江小浪
2018/07/24
1.8K0
es-head插件插入查询以及条件查询(五)
es-head插件插入查询以及条件查询 1.es-head插件页面介绍 页面详细介绍 2.es-head查询语句 2.1.查询索引中的全部数据 curl命令交互,采用GET请求 语法格式: cu
PHP开发工程师
2022/08/10
2.3K0
es-head插件插入查询以及条件查询(五)
Elasticsearch 相关 api 操作
A. es 操作 1. 检查 es 集群健康状态 bash命令:curl -XGET 'localhost:9200/_cat/health?v&pretty' kibana命令:GET /_cat
潘成涛
2018/01/18
8540
Elasticsearch 相关 api 操作
触类旁通Elasticsearch:管理
(1)创建模板 当待创建的索引与之前的索引有相同的设置和映射时,非常适合使用索引模板。正如其名,索引模板将会用于和预定义名称模式相匹配的索引创建,以确保所有匹配索引的设置一致。例如:
用户1148526
2019/05/25
1K0
Elasticsearch安装使用教程
Elasticsearch是一个全文搜索引擎。安装Elasticsearch时需要先安装Java。 wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.zip unzip elasticsearch-1.4.2.zip cd elasticsearch-1.4.2 ./bin/elasticsearch
星哥玩云
2022/07/04
3990
Elasticsearch安装使用教程
elasticsearch文档操作
上篇文章向读者介绍了Elasticsearch中修改数据的操作,使用了Elasticsearch提供的一整套强大的REST API,本文继续来看通过这一套API如何完成文档的基本操作。
江南一点雨
2018/11/23
1.4K0
触类旁通Elasticsearch:搜索
ES的搜索请求执行流程如图1所示。图中索引包含两个分片,每个分片有一个副本分片。在给文档定位和评分后,缺省只会获取排名前10的文档。REST API搜索请求被发送到所连接的节点,该节点根据要查询的索引,将这个请求依次发送到所有的相关分片(主分片或者副本分片)。从所有分片收集到足够的排序和排名信息后,只有包含所需文档的分片被要求返回相关内容。这种搜索路由的行为是可配置的,图1展示的默认行为,称为查询后获取(query_then_fetch)。
用户1148526
2019/05/25
3.3K0
Elasticsearch RESTful API 常用操作
ElasticSearch 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
YP小站
2020/06/04
1.5K0
相关推荐
ElasticSearch 索引查询使用指南——详细版
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验