到底什么是ES索引?

你会发现,其实在ES里面,索引扮演的角色其实并不是存储,而是“索引”,看起来有点傻,但是其实我之前一直理解索引是存储,其实从命名上可以看出来,索引其实是分片的索引,分片的字典,记录了每个分片的位置,索引范围;当需要查询的时候,可以定位到对应的分片来进行数据操作;最后进行汇总。所以index本质作用就是记录分片;所谓查询,有向无环图(DAG)都是基于index来进行分析绘制的,然后基于该图下放数据操作。

原文地址:https://www.cnblogs.com/xiashiwendao/p/10205522.html

时间: 2024-10-27 04:27:43

到底什么是ES索引?的相关文章

Java创建ES索引实现

1.pom.xml文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifa

ES索引

Elasticsearch索引别名.Filtered索引别名.Template 在使用elasticsearch的时候,经常会遇到需要淘汰掉历史数据的场景. 为了方便数据淘汰,并使得数据管理更加灵活,我们经常会以时间为粒度建立索引,例如: 每个月建立一个索引:monthly-201709.monthly-201710.monthly-201711 每天建立一个索引:daily-20171015.daily-20171016.daily-20171017.daily-20171018 当不需要再继

ES索引和分片

1.为了将数据添加到ES,我们需要索引(index),索引是一个存储关联数据的地方.实际上,索引只是一个用来指定一个或多个分片的"逻辑命名空间" 2.一个分片(shard)是一个最小级别"工作单元",它只是保存了索引中的所有数据的一部分,每个分片就是一个Lucene实例,并且它本身就是一个完整的搜索引擎.我们的文档存储在分片中,并且在分片中被索引,但是我们的应用程序不会直接与它们通信,取而代之的是,直接与索引通信. 3.分片是ES在进群中分发数据的关键,可以把分片想

【数据库】- 一个值只有0和1的字段,到底要不要建索引?

关于数据库索引的所有文章,都会告诉你不要对这种字段建索引. 但这些文章不会告诉你的一个事实是: 如果表里面这个字段的值分布极度不均匀的情况下,而且你需要查询分布较少的记录的话,索引就非常有用了 举个例子,假设表中有一千万条记录,某个状态为0的记录总数大概会有100条,那么你想查询状态为0的记录时,有没有索引影响非常大,而查询状态为1的记录,则索引基本无用.如果两种状态的记录数相差无几的话,索引也基本无用. 所有的关于索引的文章,建议你不要为这种字段建索引的依据,都是以值分布是均匀为前提的.但如果

MySQL慢查询日志ES索引模板

{ "template": "mysql-slow-log-*", "settings": { "index": { "refresh_interval": "5s" } }, "mappings": { "mysql-slow-log": { "numeric_detection": true, //开启数值类型设置 &quo

自动清理ES索引脚本

#/bin/bash #指定日期(3个月前) DATA=`date -d "3 month ago" +%Y-%m-%d` #当前日期 time=`date` #删除3个月前的日志 curl -XDELETE http://127.0.0.1:9200/*-${DATA} if [ $? -eq 0 ];then echo $time"-->del $DATA log success.." >> /data/elk/logs/es-index-cl

Nginx access日志ES索引模板

{ "template": "nginx-access-*", "settings": { "index": { "refresh_interval": "5s" } }, "mappings": { "nginx-access": { "properties": { "@timestamp": { &quo

python - 定时清理ES 索引

只保留三天 #!/usr/bin/env python3 # -*- coding:utf-8 -*- import os import datetime # 时间转化为字符串 now_time = datetime.datetime.now().strptime(datetime.datetime.now().strftime("%Y.%m.%d"),"%Y.%m.%d") os.system("curl -XGET http://127.0.0.1:9

es索引的RestHighLevelClient实现

java代码: import java.io.IOException; import org.apache.http.HttpHost; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RestClient; import org.elasticsearch.cli