In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)05/31 Report--
这篇文章主要介绍"Elasticsearch索引别名怎么创建",在日常操作中,相信很多人在Elasticsearch索引别名怎么创建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Elasticsearch索引别名怎么创建"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
一、
Elasticsearch的别名,就类似数据库的视图。
创建别名:
我们为索引my_index创建一个别名my_index_alias,这样我们对my_index_alias的操作就像对my_index的操作一样
POST /_aliases{ "actions": [ { "add": { "index": "my_index", "alias": "my_index_alias" } } ]}
别名不仅仅可以关联一个索引,它能聚合多个索引
我们为索引my_index_1 和 my_index_2 创建一个别名my_index_alias,这样对my_index_alias的操作(仅限读操作),会操作my_index_1和my_index_2,类似于聚合了my_index_1和my_index_2.我们是不能对my_index_alias进行写操作,当有多个索引时alias,不能区分到底操作哪一个
POST /_aliases{ "actions": [ { "add": { "index": "my_index_1", "alias": "my_index_alias" } }, { "add": { "index": "my_index_2", "alias": "my_index_alias" } } ]}GET /my_index_alias/_search{}
创建filtered的别名:
例如对于同一个index,我们给不同人看到不同的数据,
如my_index有个字段是team,team字段记录了该数据是那个team的。team之间的数据是不可见的。
POST /_aliases{ "actions": [ { "add": { "index": "my_index", "alias": "my_index__teamA_alias", "filter":{ "term":{ "team":"teamA" } } } }, { "add": { "index": "my_index", "alias": "my_index__teamB_alias", "filter":{ "term":{ "team":"teamB" } } } }, { "add": { "index": "my_index", "alias": "my_index__team_alias" } } ]}GET /my_index__teamA_alias/_search 只能看到teamA的数据GET /my_index__teamB_alias/_search 只能看到teamB的数据GET /my_index__team_alias/_search 既能看到teamA的,也能看到teamB的数据
二、情景
情景1:用Logstash采集当前所有nginx的日志,放入ES,索引名叫nginx-YYYY.MM.DD
后来又增加了apache的日志,希望能放到同一个索引中,统一叫做web-YYYY.MM.DD
我们只要把logstash的配置更改下,然后重启,这样数据就会写入到新的索引下,但是同一天的索引就会被写入2个索引中,Kibana中就不好配置了。
解决方案:
1.今天是2015-11-13.我们为nginx-2015.11.13创建一个alias叫做web-2015.07.28,之前所有的nginx日志也这样
2.kibana中把dashboard的配置索引名改为web-YYYY.MM.DD
3.将logstash里面的elasticsearch的配置改为web-YYYY.MM.DD,重启
情景2:用Logstash采集当前所有nginx的日志,放入ES,索引名叫nginx-YYYY.MM.DD
某天2015-11-13希望按照月来建立索引,索引名改为nginx-YYYY.MM
注意:像情景1中,我们建立一个nginx-2015.11的alias执行本月的其他索引,是不行的。因为一个alias指向多个索引后,写这个alias时,ES不可能知道写入到那个真正的索引中。
解决方案1:
1.新建索引nginx-2015.11 以及它的nginx-2015.11.01,nginx-2015.11.02,...,nginx-2015.11.30等
2.等到了第二天,将logstash的配置改为nginx-YYYY.MM,重启
3.如果索引只保留10天,在10天候的某天,将kibana的配置改为nginx-YYYY.MM
缺点:第二步和第三步需要手工,可以写crontab定时任务
我们不希望用户(Kibaba的使用者)感觉到任何变化,更不能让使用者感觉到数据的丢失。
到此,关于"Elasticsearch索引别名怎么创建"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.