乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
Elasticsearch 1.2 多库同时搜索
2017-01-01 00:36:49
76
0
0
admin
> Elasticsearch 一般建议按时间戳为同一种数据建立多个index(logstash-20170101,logstash-20170102,logstash-20170103),这样可以方便日后运维。这里介绍Elasticsearch 的多index 搜索。 #搜索时匹配多index ``` curl localhost:9200/_all/_search?pretty #所有索引 curl localhost:9200/*/_search?pretty #所有索引 curl localhost:9200/xx*xx/_search?pretty #匹配xx*xx 的索引 curl localhost:9200/xx*/_search?pretty #匹配xx*的索引 curl 'localhost:9200/xx/_search?pretty&ignore_unavailable=true' #如果index 不可用不报错 curl 'localhost:9200/xx*/_search?pretty&allow_no_indices=true' #如果index 不可用不报错,对指明index 的(上一行那种情况)无效 curl 'localhost:9200/xx*/_search?pretty&expand_wildcards=open' #只对open 的index 实行匹配符匹配 expand_wildcards=open/closed/open,closed/all/none ``` *** #按时间给index起名字 ##Elasticsearch 时间 | 符号 | 意义 | |------|----------------------| | y | 年 | | M | 月 | | w | 星期 | | d | 天 | | h | 小时 | | H | 小时 | | m | 分钟 | | s | 秒 | | +1h | 加一小时 | | -1d | 减一天 | | /d | 四舍五入到最近的一天| | now | 现在 | ##把时间应用到索引名字上 ###格式: ``` <index名{时间{时间格式|时区}}> ``` ###一些例子: ``` <index_name-{now/d}> => index_name-今天(默认格式) index_name-2017.01.01 <index_name-{now/d-2d}> => index_name-前天(默认格式) index_name-2016.12.30 <index_name-{now/M-2M}> => index_name-两个月后的1号(默认格式) index_name-2016.11.01 <index_name-{now/d-7d{YYYY:MM-dd}} => index_name-7天前(指定格式) index_name-2016:12-25 <index_name-{now/d-7d{YYYY:MM-dd|+12:00}}> => index_name-7天前(指定格式 +12时区) index_name-2016:12-26 <index_\\{name\\}-{now/d}> => index_{name}-今天(默认格式) index_{name}-2017.01.01 ``` ###使用方式 **注意,要把代码翻译成URI格式** ``` [es@hadoop1 ~]$ date Sun Jan 1 20:24:58 CST 2017 [es@hadoop1 ~]$ echo '<index_name-{now/d}>' | perl -MURI::Escape -lne 'print uri_escape($_);' %3Cindex_name-%7Bnow%2Fd%7D%3E [es@hadoop1 ~]$ curl -XPUT localhost:9200/%3Cindex_name-%7Bnow%2Fd%7D%3E {"acknowledged":true,"shards_acknowledged":true} [es@hadoop1 ~]$ curl localhost:9200/%3Cindex_name-%7Bnow%2Fd%7D%3E?pretty { "index_name-2017.01.01" : { "aliases" : { }, "mappings" : { }, "settings" : { "index" : { "creation_date" : "1483272600016", "number_of_shards" : "5", "number_of_replicas" : "1", "uuid" : "v8l-PE7dROC2-qNSbxxSUg", "version" : { "created" : "5010199" }, "provided_name" : "<index_name-{now/d}>" } } } } ```
上一篇:
Elasticsearch 1.1 更多搜索技巧
下一篇:
Elasticsearch 1.5 Mapping
文档导航