3个你需要知道的Elasticsearch技巧

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 3个你需要知道的Elasticsearch技巧

最近在做Elasticsearch开发维护工作,所以今天分享三个Elasticsearch的简单技巧。没有什么高大上,就是简单工作总结。


一、使用alias(别名)管理索引


首先我们要说的是索引alias

alias就是一个快捷方式或者说软链接,可以指向1个或者多个索引,通过alias我们可以实现更好的实现索引的管理, 比如查找搜索,分类数据,切换索引等。

  1. 创建,删除别名
curl -XPOST 'localhost:9200/_aliases' -d 
{
  "actions": [
      {"remove": {"index": "day1", "alias": "week2"}},
      {"add": {"index": "day1", "alias": "week1"}},
      {"add": {"index": "day2", "alias": "week1"}}
  ]
}
在这里add,remove方法也可以分开单独写。


通过上面添加alias,我们就可以用week1获取操作几天的索引数据了。


之前: curl localhost:9200/day1,day2/_search
现在: curl localhost:9200/week1/_search


二、使用cat API查看集群信息

之前我们需要查看集群信息都是通过集群API获取,但是返回数据为JSON格式,不利于理解,而且也不便于记忆。为快速方便看集群的各种监控或者配置情况,我们可以通过使用一个友好API, cat API

curl localhost:9200/_cat
=^.^=
/_cat/allocation  # 返回分片分配和磁盘使用的信息
/_cat/shards # 返回关于分片的信息
/_cat/shards/{index} 
/_cat/master # 返回当选主节点信息
/_cat/nodes # 返回集群拓扑相关信息
/_cat/tasks 
/_cat/indices # 返回所有索引信息
/_cat/indices/{index}
/_cat/segments # 索引段包括分片布局的API信息
/_cat/segments/{index}
/_cat/count # 为所有索引返回文档个数的信息
/_cat/count/{index}
/_cat/recovery # 返回还原过程的视图
/_cat/recovery/{index}
/_cat/health # 集群健康度
/_cat/pending_tasks # 正在等待执行任务信息
/_cat/aliases # 返回有关别名信息
/_cat/aliases/{alias}
/_cat/thread_pool #集群范围内的线程池统计信息
/_cat/thread_pool/{thread_pools}
/_cat/plugins # 插件信息
/_cat/fielddata # 字段数据信息使用堆内存
/_cat/fielddata/{fields}
/_cat/nodeattrs # 输出显示自定义节点属性
/_cat/repositories # 输出集群中注册快照存储库
/_cat/snapshots/{repository} # 输出属于指定仓库的快照信息
/_cat/templates # 输出当前正在存在的模板信息

可以通过 curl localhost:9200/_cat/health?v 查看集群健康度,通过v可以看到具体字段及对应的信息。


三、维护节点推迟再平衡

在服务版本升级或者需要进行一些维护操作,我们通常会重启服务,但是我当我们关闭一个节点的时候,集群会发现节点丢失会进行再平衡,如果集群维护时间短(集群数据量大),这样会造成数据分片再平衡花费较长时间。


通过下面方式关闭分片分配:

PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.enable" : "none"
    }
}

然后关闭单个节点,维护升级,重启,最后进行如下设置:

PUT /_cluster/settings
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"
    }
}


通过上面的三个简单方法,希望大家在使用ES将更加得心应手。


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
7月前
|
存储 搜索推荐 关系型数据库
为什么需要 Elasticsearch
为什么需要 Elasticsearch
54 0
|
3月前
|
消息中间件 数据采集 Kafka
elasticsearch系列(二)
elasticsearch系列(二)
|
7月前
|
Java 关系型数据库 API
ElasticSearch使用篇
ElasticSearch使用篇
|
7月前
|
搜索推荐 关系型数据库 MySQL
【Elasticsearch】初识elasticsearch
【Elasticsearch】初识elasticsearch
73 1
|
7月前
|
搜索推荐 Java Apache
ElasticSearch
ElasticSearch
69 0
|
存储 JSON 自然语言处理
【Elasticsearch】初识elasticsearch(下)
【Elasticsearch】初识elasticsearch(下)
76 0
|
存储 Java 关系型数据库
一起来学ElasticSearch(九)
前言 目前正在出一个Es专题系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~ 本节给大家讲下es中如何做聚合操作, 内容有点多,需要耐心看完~ 本文偏实战一些,好了, 废话不多说直接开整吧~ 什么是聚合 聚合的概念有点类似mysql中group by,sum(...),这么说大家可能就有点印象了, 但是在es中聚合操作功能更强大。 在了解es中聚合的概念之前,先来看下这两个概念, 聚合就是一个或多个桶和零个或多个指标的组合。
一起来学ElasticSearch(十)
前言 目前正在出一个Es专题系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~ 承接上文,上节给大家讲的es聚合还有一点内容,本节给大家更完~ 本文偏实战一些,为了方便演示,本节示例沿用上节索引,好了, 废话不多说直接开整吧~ 聚合排序 我们如何在聚合结果中进行自定义字段排序呢?
|
缓存 自然语言处理 安全