ElasticSearch(八)-运维
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
cat命令
健康检查
/_cat/health?v
12epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent1628751491 06:58:11 local-cluster yellow 1 1 3 3 0 0 2 0 - 60.0%
节点分片数量查询
/_cat/allocation?v
查询每个节点上分配的分片(shard)的数量和每个分片(shard)所使用的硬盘容量
123shards disk.indices disk.used disk.avail disk.total dis ...
ElasticSearch(七)-路由
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
路由
环境
1234567891011集群元信息Cluster-name:local-esNodes: node1 192.168.0.1 master node2 192.168.0.2 node3 192.168.0.3Indics: s0: shard0: primay: 192.168.0.1 rep:192.168.0.3
创建索引的流程
请求node3创建索引
node3请求转发给master节点
选择节点存放分片、副本,记录元信息
通知给参与存放索引分片、副本的节点从节点,创建分片、副本
参与节点向主节点反馈结果
等待时间到了,master向node3反馈结果信息,node3响应请求。
主节点将元信息广播给所有从节点。
索引文档流程
node2计算文档的路由值得到文档存放的分片(假定路由选定的是分片0)。
将文档转发给分片0的主分片节点 node1。
nod ...
ElasticSearch(六)-索引
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
索引收缩
索引的分片数是不可更改的,如要减少分片数可以通过收缩方式收缩为一个新的索引。新索引分片数必须是原分片数的因子值,如原分片数是8,则新索引分片数可以为4、2、1 。
收缩流程
先把所有主分片都转移到一台主机上;
在这台主机上创建一个新索引,分片数较小,其他设置和原索引一致;
把原索引的所有分片,复制(或硬链接)到新索引的目录下;
对新索引进行打开操作恢复分片数据;(可选)重新把新索引的分片均衡到其他节点上。
收缩前准备工作
将原索引设置为只读;将原索引各分片的一个副本重分配到同一个节点上,并且要是健康绿色状态。
1234567PUT /my_source_index/_settings{"settings": { "index.routing.allocation.require._name": "shrink_node_name", "index.blocks.write": tru ...
ElasticSearch(三)-常见配置以及配置文件详解
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
Cluster配置
配置
含义
cluster.name: holelin_elasticsearch
所属的集群名,默认为 elasticsearch ,可自定义(最好给生产环境的ES集群改个名字,改名字的目的其实就是防止某台服务器加入了集群这种意外)
Node配置
配置
含义
node.name: holelin_elasticsearch_node01
节点名,默认为 UUID前7个字符,可自定义
node.master: true
指定该节点是否可以作为master节点,默认是true。ES集群默认是以第一个节点为master,如果该节点出故障就会重新选举master。
node.data: true
该节点是否存索引数据,允许该节点存储数据。默认true。
node.client: false
当该值设置为true时,node.master值自动设置为false,不参加master选举。
node.rack
无默认值,为节点添加自定义属性。
node. ...
ElasticSearch(一)-理论
参考文献
Elasticsearch 最佳运维实践 - 总结(二)
ElasticSerch使用场景
存储
ElasticSearch天然支持分布式,具备存储海量数据的能力,其搜索和数据分析的功能都建立在ElasticSearch存储的海量的数据之上;ElasticSearch很方便的作为海量数据的存储工具,特别是在数据量急剧增长的当下,ElasticSearch结合爬虫等数据收集工具可以发挥很大用处
搜索
ElasticSearch使用倒排索引,每个字段都被索引且可用于搜索,更是提供了丰富的搜索api,在海量数据下近实时实现近秒级的响应,基于Lucene的开源搜索引擎,为搜索引擎(全文检索,高亮,搜索推荐等)提供了检索的能力。 具体场景:
Stack Overflow(国外的程序异常讨论论坛),IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案;
GitHub(开源代码管理),搜索上千亿行代码;
电商网站,检索商品;
日志数据分析,logstash采集日志,Elastic ...
Elasticsearch字段类型
ElasticSearch 字段类型
普通类型
binary: Binary value encoded as a Base64 string.
The binary type accepts a binary value as a Base64 encoded string. The field is not stored by default and is not searchable:
BINARY类型接受二进制值作为Base64编码字符串。默认情况下,该字段不存储且不可搜索
The following parameters are accepted by binary fields:
参数名称
说明
doc_values
字段是否应该以跨列方式存储在磁盘上,以便以后可以用于排序、聚合或编写脚本?接受true或false
store
字段值是否应与_source字段分开存储和检索。接受true或false
123456789101112131415161718192021PUT my-index-000001{ "mappin ...
ElasticSearch(二)-结构化搜索
参考文献
白日梦的Elasticsearch笔记—进阶篇、32种查询方法、15中聚合方式、7种优化后的查询技巧
目录
搜索基本信息
使用URL限制搜索范围
搜索请求的基本模块
基于URL的搜索请求
基于请求主体的搜索请求
搜索用途
精确值检索
term
bool fliter
terms
terms_set
范围检索
range
存在与否检索
exists
前缀检索
prefix
通配符检索
wildcard
正则表达式检索
regexp
模糊检索
fuzzy
ID检索
ids
全文检索
分词全文检索 match
短语检索match_phrase
间隔检索intervals
短语前缀检索: match_phrase_prefix
多字段匹配检索: multi_match
query_string
simple_query_string
match_boolean_prefix
复合检索
固定得分检索 constant_score
改变评分检索
dis_max
function_score ...