• Elasticsearch: Alias


    序言

    随着业务的深入,我们的需求越来越复杂,对应的会带来一些问题.Elasticsearch 的Alias 就是用于解决一些特殊场景的工具Aliascuiyaonan2000@163.com

    Elasticsearch别名分为索引别名字段别名.应用场景我觉得都差不多,如果你熟悉了别名在索引中的应用场景,那字段也就依葫芦画瓢了cuiyaonan2000@163.com

    参考资料:

    1. https://baijiahao.baidu.com/s?id=1667202756950040116&wfr=spider&for=pc

    另:

    Elasticsearch索引本质上是个虚拟的空间,实际数据存储查询都是由分片完成,通过索引名访问索引本身也是通过索引代理实现,可以这样理解,索引名就是默认的别名.

    索引别名

    应用场景

    如下所示当我们需要对一个索引进行重构,且不影响正常业务的时候,可以使用索引别名,因为别名可以指向多个索引cuiyaonan2000@163.com 

    如下所示可以使用索引进行业务上的隔离,只不过是针对多个索引的的业务逻辑拆分

    如下所以同样也是业务逻辑拆分,只是针对的是同一个索引的不同字段内容(索引创建多了,集群需要管理更多的元数据,消耗更多的管理节点资源,如果索引本身数量不是很大,可以将很多数据合并到一个索引中,对外采用多别名的方式隔离,每个别名仅限其中某些类型的数据访问。)

    字段别名

    大概同一个意思,只是字段索引同理可以指代不同索引的不同字段.

    注意点

    1. 索引别名只能用于查询,不能用于更新和插入
    2. 字段别名只能用于查询,不能用于更新和插入.

    索引别名操作

    给索引创建一个别名

    1. #给指定的索引关联一个别名
    2. PUT cuiyaonan_index/_alias/myalias

    获取所有的别名与索引的对应关系

    GET _cat/aliases

    如上的比较简单知识针对单一索引的增删.如下是删除一个索引别名,同时增加一个索引别名,当然也是可以独立的(可以重复增加remove和add)

    1. POST /_aliases
    2. {
    3. "actions": [
    4. {
    5. "remove": {
    6. "index": "索引名称",
    7. "alias": "索引别名"
    8. }
    9. },
    10. {
    11. "add": {
    12. "index": "索引名称",
    13. "alias": "索引别名"
    14. }
    15. },
    16. {
    17. "add": {
    18. "index": "cuiyaonan_index",
    19. "alias": "566"
    20. }
    21. },
    22. {
    23. "add": {
    24. "index": "cuiyaonan_index",
    25. "alias": "123"
    26. }
    27. }
    28. ]
    29. }

    根据索引获取对应的别名

    GET cuiyaonan_index/_alias
    

    限制别名能查到的数据 ,如下所示: 给索引test1创建别名alias2.同时alias2只能查询到user为cuiyaonan2000@163.com的数据

    1. POST /_aliases
    2. {
    3. "actions" : [
    4. {
    5. "add" : {
    6. "index" : "test1",
    7. "alias" : "alias2",
    8. "filter" : { "term" : { "user" : "cuiyaonan2000@163.com" } }
    9. }
    10. }
    11. ]
    12. }

    字段别名操作

    可以看到字段别名其实,就是讲一个字段的类型设置为alias

    1. PUT trips
    2. {
    3. "mappings": {
    4. "_doc": {
    5. "properties": {
    6. "distance": {
    7. "type": "long"
    8. },
    9. "route_length_miles": {
    10. "type": "alias",
    11. "path": "distance"
    12. },
    13. "transit_mode": {
    14. "type": "keyword"
    15. }
    16. }
    17. }
    18. }
    19. }

  • 相关阅读:
    Spring Boot Admin2 自定义JVM监控通知
    vue和react的区别
    Jenkins发布失败记录
    共享模型之无锁
    利用redis 的原子性生成不重复编号
    乐凡三防平板:制造业移动作业平台的专业高效之选
    NLP:从头开始的文本矢量化方法
    【物理应用】基于粒子群优化算法实现瞬变电磁法视电阻率反演附matlab代码
    Excel - 学习 - 笔记6: Excel 函数 - filter 函数
    SpringBoot + mongodb 删除集合中的数据
  • 原文地址:https://blog.csdn.net/cuiyaonan2000/article/details/126466231