elasticsearch API约定(一)

  • 支持使用简单表示法,如test1,test2,test3表示法

  • 使用_all表示所有索引

  • 使用通配符,如 test*或 *test或 te*t或 *test*

  • 也支持排除能力,例如:test*,-test3

在所有的多索引API中都支持以下URL查询参数:

ignore_unavailable

这个参数表示,当指定多个索引时,如果有索引不可用(不存在或者已经关闭)那么是否忽略该索引。true表示忽略,false表示不忽略,默默认为false。

例如如下请求表示查看索引bank和索引bank2中的文档(实际上bank2不存在):

curl -X GET “localhost:9200/bank,bank2/_search?q=*&sort=account_number:asc&pretty”

该请求执行结果如下:

640?wx_fmt=png

可以看到,由于bank2这个索引不存在,因此执行失败,如果加上ignore_unavailable参数则可以执行成功,如下:

curl -X GET “localhost:9200/bank,bank2/_search?q=*&sort=account_number:asc&pretty&ignore_unavailable=true”

执行结果如下:

640?wx_fmt=png

allownoindices

这个参数表示如果查询的时候使用了通配符,但是通配符没有匹配到任何索引,此时是否查询失败?该参数默认值为true,表示允许通配符匹配不到任何索引,例如如下请求:

curl -X GET “localhost:9200/bank3*/_search?q=*&pretty”

实际上,bank3索引是不存在的,但是该请求执行并未报错,如下:

640?wx_fmt=png

这是因为默认是允许通配符匹配不到任何索引的,如果加上 allow_no_indices参数,并将之设置为false,即不允许通配符匹配不到任何索引,此时再去执行就会报错,如下:

curl -X GET “localhost:9200/bank3*/_search?q=*&pretty&allow_no_indices=false”

执行结果如下:

640?wx_fmt=png

如果别名指向关闭索引,则此设置也适用于别名。

expand_wildcards

expand_wildcards表示查询索引的范围,open表示查询所有匹配并open的索引,closed则表示查询所有匹配的索引,如下:

假设bank关闭,bank2未关闭,执行如下查询:

curl -X GET “localhost:9200/bank*/_search?pretty&expand_wildcards=open”

此时,只会展示open的索引信息,如下:

640?wx_fmt=png

而如果执行如下查询:

curl -X GET “localhost:9200/bank*/_search?pretty&expand_wildcards=closed”

结果如下:

640?wx_fmt=png

索引名中的日期数学支持

===========

Date math索引名称解析可以让开发者搜索一系列time-series indices(时间序列索引),而不用搜索所有时间序列索引然后过滤结果或者维护aliases(别名)。这种方式限制了搜索的索引数量并且减少了集群上的负载,并提高了执行性能。例如,如果使用Elasticsearch来记录软件运行日志,如果想要查看过去两天的日志信息,则可以使用date math name模板将搜索索引限制为过去两天。

几乎所有的具有索引参数的API都支持在index parameter value(索引参数值)中包含 date math。date math索引名称采用以下形式 :

<static_name{date_math_expr{date_format|time_zone}}>

上述模版说明:

| 模版 | 中文含义 |

| — | — |

| static_name | 索引名称中的静态文本部分 |

| datemathexpr | 动态计算日期的date math表达式 |

| date_format | 日期的显示格式,默认为YYYY.MM.dd |

| time_zone | 可选的时区,默认为utc |

date_math索引名称表达式必须包含在尖括号中,并且所有特殊字符都需要进行URL编码,例如如下请求:

GET /<logstash-{now/d}>/_search

编码后的请求格式为:

curl -X GET “localhost:9200/%3Clogstash-%7Bnow%2Fd%7D%3E/_search” -H ‘Content-Type: application/json’ -d’

{

“query” : {

“match”: {

“test”: “data”

}

}

}

编码格式表如下:

| 字符 | 编码 |

| — | — |

| < | %3C |

| > | %3E |

| / | %2F |

| { | %7B |

| } | %7D |

| | | %7C |

| + | %2B |

| : | %3A |

| , | %2C |

下面是几个解析案例,供读者参考,设置当前的默认时间为2024年3月22日中午utc。

| 表达式 | 解析结果 |

| — | — |

| <logstash-{now/d}> | logstash-2024.03.22 |

| <logstash-{now/M}> | logstash-2024.03.01 |

| <logstash-{now/M{YYYY.MM}}> | logstash-2024.03 |

最后

金三银四到了,送上一个小福利!

image.png

image.png

专题+大厂.jpg
tash-2024.03.22` |

| <logstash-{now/M}> | logstash-2024.03.01 |

| <logstash-{now/M{YYYY.MM}}> | logstash-2024.03 |

最后

金三银四到了,送上一个小福利!

[外链图片转存中…(img-KZAr1VTU-1716573712518)]

[外链图片转存中…(img-JkjOyfza-1716573712519)]

[外链图片转存中…(img-p5mwpxk3-1716573712519)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值