【Elasticsearch入门】ElasticSearch HTTP接口

Elasticsearch对外提供的API是以HTTP协议的方式,通过JSON格式以REST约定对外提供。
HTTP配置文件是放在elasticsearch.ym中,注意,所有与HTTP配置相关的内容都是静态配置,也就是需要重启后才生效。HTTP对外接口模块是可以禁用的,只需要设置http.enabled为false即可。Elasticsearch集群中的通信是通过内部接口实现的,而不是HTTP协议。在集群中不需要所有节点都开启HTTP协议,正常情况下,只需要在一个节点上开启HTTP协议。

1、API约定

1.1、多索引参数

大多数API支持多索引查询,就是同时可以查询多个索引中的数据,例如,参数 test1、test2、test3表示同时搜索 test1、test2、test3三个索引中的数据(或者用_all全部索引,_all是内部定义的关键字)。在参数中同时支持通配符的操作,例如test*表示查询所有以test开头的索引。也支持排除操作,例如+test*,-test3表示查询所有test开头的索引,排除test3。
多索引查询还支持以下参数:

  • ignore_unavailable:当索引不存在或者关闭的时候,是否忽略这些索引,值为tue和 false。
  • allow_no_indices:当使用通配符查询所有索引的时候,当有索引不存在的时候是否返回查询失败。值为true和 false。
  • expand_wildcards:控制通配符索引表达式匹配具体哪一类的索引,值为open,close,none, all。 open表示只支持开启状态的索引,close表示只支持关闭状态的索引,none表示不可用,all表示同时支持open和 close索引。

注意:文档操作API和索引别名API不支持多索引参数。

1.2、日期筛选

日期筛选可以限定时间序列索引的搜索范围,而不是搜索全部内容,通过时间限定,可以从集群中减少搜索的内容,提高搜索效率和减少资源占用。例如只搜索最近两天的错误日志。几乎所有的API都支持日期筛选。
日期筛选的语法为:

<static_name{date_math_expr{date_format | time_zone}}>

语法解释:

  • static_name:索引的名称;
  • date_math_expr:动态日期计算表达式;
  • date_format:日期格式;
  • time_zone:时区,默认为UTC。

例如:

curl -XGET '127.0.0.1:9200/<logstash-{now%2Fd-2d}>/_search' {"query":{...}}

由于URL编码的问题,上面的/被替换成了%2F:now%2Fd-2d被转换为now/d-2d。

1.3、通用参数

通用参数如下:

  • pretty参数,当你在任何请求中添加了参数? pretty=tue时,请求的返回值是经过格式化后的JSON数据,这样阅读起来更加的方便。系统还提供了另一种格式的格式化,?format=yaml,YAML格式,这将导致返回的结果具有可读的YAML格式。
  • human参数,对于统计数据,系统支持计算机数据,同时也支持比较适合人类阅读的数据。比如,计算机数据"exists_time_in_millis":36000 or "size_in_bytes":1024。更适合人类阅读的数据:"exists_time":"1h" or "size":"1kb"。当?human=false的时候,只输出计算机数据,当?human=true的时候输出更适合人类阅读的数据,但这会消耗更多的资源,默认是 false。
  • 日期表达式,大多数参数接受格式化日期表达式,如范围查询gt(大于)和It(小于),或在日期聚合中用 from to来表达时间范围。表达式设定的日期为now或者日期字符串加||。+1h增加一小时。-1h减少一个小时。/h上一个小时。支持的时间单位为:y(年)、M(月)、w(周)、d(日)、h(小时)、m(分钟)、s(秒)。例如:now+h:当前时间加一小时,以毫秒为单位。now+1h+1m:当前时间加一小时和一分钟,以毫秒为单位。now+1h/d:当前时间加一小时,四舍五入到最近的一天。2015-01-01||+1M/d:2015-01-01加一个月,向下舍入到最近的一天。
  • 响应过滤(filter_path)。所有的返回值可以通过 filter_path来减少返回值的内容,多个值可以用逗号分开。例如:

1.4、基于URL的访问控制

当多用户通过URL访问 Elasticsearch索引的时候,为了防止用户误删除等操作,可以通过基于URL的访问控制来限制用户对某个具体索引的访问。在配置文件中添加参数:rest.action.multi.allow_explicit_index:false,这个参数默认为true。当该参数为 false时,在
请求参数中指定具体索引的请求将会被拒绝。

2、API操作

2.1、创建索引

put http://127.0.0.1:9200/secisland?pretty

执行完建库后查询一下库的状态,可以在浏览器中执行http://127.0.0.0:9200/_cat/indices?v。

2.2、插入数据

2.3、修改文档

2.4、查询文档

2.5、删除文档

2.6、删除索引

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值