大家好,我是 路由器没有路 。
【资料图】
今天跟大家聊下自己 在工作中总结的关于使用 ElasticSearch 的一些规范 ,如有不当的地方,欢迎指正。
Elasticsearch 是一个基于 Lucene 的搜索引擎,支持分布式搜索、多租户、实时搜索和分析等能力,具有高效、稳定、可扩展的优势,被广泛应用于企业级搜索和数据分析场景。
关于 ElasticSearch 的介绍,这里不再赘述了,有兴趣的同学可以看下我前面写的一篇文章:Elasticsearch 的简单介绍和如何使用。
注:一个 shard 就是一个 lucene 分片,ES 底层基于 lucene 实现。
大索引需要拆分:提高性能,降低风险,将风险分散化。
反例 :例如一个 10 多 T 的索引,按 date 查询、name 查询
正例 :index name 拆成多个 index_name ${date}
正例 :index name 按 hash 拆分 index_name {1,2,3,...100..}
一个节点管理的 shard 数不要超过 200 个
大原则 :不使用默认配置和动态 mapping 、数据用途(类型、分词、存储、排序)弄清,下面是一个标准 mapping :
json复制代码{ \"aliases\": { \"my_index_name\": {} }, \"settings\": { \"index\": { \"refresh_interval\": \"1s\", \"number_of_shards\": \"12\", \"number_of_replicas\": \"1\", \"search.slowlog.threshold.query.warn\": \"5s\", \"search.slowlog.threshold.query.info\": \"1s\", \"search.slowlog.threshold.fetch.warn\": \"1s\", \"search.slowlog.threshold.fetch.info\": \"800ms\", \"indexing.slowlog.threshold.index.warn\": \"12s\", \"indexing.slowlog.threshold.index.info\": \"2s\" } }, \"mappings\": { \"_default_\": { \"_all\": { \"enables\": false } }, \"my_type_name\": { \"properties\": { \"xxx_id\": { \"type\": \"keyword\" }, \"timestamp\": { \"type\": \"long\" }, \"xxx_status\": { \"type\": \"integer\" }, \"xxx_content\": { \"type\": \"ztext\" } } } }}
ES 的定位是准实时搜索引擎,该值默认是 1s ,表示写入后 1 秒后可被搜索到,所以这里的值取决于业务对实时性的要求。
注意这里并不是越小越好,刷新频率高也意味着对 ES 的开销也大,通常业务类型在 1-5s ,日志型在 30s-120s ,如果集中导入数据可将其设置为-1, ES 会自动完成数据刷新(注意完成后更改回来,否则后续会出现搜索不到数据)。
记住:在某些场景下可使用别名,但不要过度依赖别名功能。
正例 :
索引名: index_name_v1
别名: index_name
未来重建 index_name_v2 索引,对于业务来说只需要换别名。
1 个就够了,从 ES6 开始只支持一个 type ,这个 type 比较鸡肋,后面的版本可能会去掉。
如果一定用:针对已经使用多个 type 的场景,一定要保证不同 type 下字段尽量保持一致,否则会加大数据稀疏性,存储与查询性能受影响
一定要配置,默认不记录慢查询,kcc 提供了 grafana、kibana 查询功能。
1 个就够用,副本多写入压力不可忽视。极端情况下:譬如批量导入数据,可以将其调整为 0。
text 类型:适用于分词用于搜索,适用于 email 、内容、描述等需要分词的全文检索,不适用聚合。
keyword 类型:无需分词,整段完整精确匹配,适用于:email 、地址、状态码、分类 tags。
id 不均衡:集群容量和访问不均衡,对于分布式存储是致命的。
ES6.0 已经去掉,对容量(索引过大)和性能(性能下降)都有影响。
ES 默认最大 1000,但建议不要超过 100
text 类型 fileddata 会加大对内存的占用,如果有需求使用,建议使用 keyword
聚合查询的中间结果和最终结果都会在内存中进行,嵌套过多,会导致内存耗尽。
以下是聚合就嵌套了 3 层,结果都会保存在内存中,
如果唯一值较多,就会导致内存耗尽:
json复制代码{ \"aggs\": { \"country\": { \"terms\": { \"filed\": \"country\", \"size\": 10 }, \"aggs\": { \"city\": { \"terms\": { \"filed\": \"city\", \"size\": 20 }, \"aggs\": { \"salary\": { \"terms\": { \"filed\": \"salary\", \"size\": 20 } } } } } } }}
以上是自己在工作中总结的关于 ElasticSearch 的使用规范,如对你有帮助,可以给个赞。
另外, Elasticsearch 的使用需要结合实际业务场景,通过优化和管理来提高其性能和稳定性,我们需要根据特定的业务场景和使用需求来选择合适的方案。
原文链接:https://juejin.cn/post/7244819106343518268
标签:
精彩推荐
前言大家好,我是路由器没有路。今天跟大家聊下自己在工作中总结的关于
直播吧6月20日讯据太阳记者JohnGambadoro报道,奇才在比尔的交易中向太
理想汽车于近日举办首个“家庭科技日”,在此次活动中,公开了全新旗舰
调理月经临床发现月经周期紊乱的女性比其他人更易乳腺增生,通过调理内
导读1、热点书库有的时候是在维护,所以打不开第二种是热点书库有弹出
1、是因为系统的损坏导致的,只需要恢复一下系统就可以了,将手机连上
潮新闻客户端记者陈素萍通讯员曾颖近年来,固定翼无人机成了大热门,喷
同花顺财经讯深深房A发布公告,公司2022年年度权益分配实施方案内容如
中新网6月19日电题:618消费洞察报告:年轻人乐意为“松弛感”买单中新
咸安马桥镇高赛村:打好“乡贤牌”,助力共同缔造走深走实---村道宽阔
美元加息,带来了全球各国对美债违约风险的担忧。许多国家开始减少美债
育碧推出的合作射击游戏《彩虹六号:异种》已经在6月16日登陆Steam平台
民警向学生家长宣传交通安全知识。为切实提高中考期间广大考生家长的交
近日,陕西日报记者从榆林市林业和草原局获悉:日前,经中国蜂产品协会
黄子佼称大小S嗑药吸毒近日,主持人黄子佼近日卷入性骚扰事件,被曝曾
有的人身上总是会长囊肿、肌瘤、结节是为啥?1、产生结节的原因大概分为
从理论上来讲,根据公司法的规定,信用合作社会破产,但在实际情况中,
6月19日,外交部发言人毛宁主持例行记者会。有记者就中国援助叙利亚物
文 羊城晚报全媒体记者何晶“我曾发下誓言,用我的后半生完成从小说家
当地时间6月19日,卡塔尔外交部宣布,自即日起,卡塔尔与阿联酋重新开
资讯News
08-17
11-03
11-03
11-03
11-03
11-03
11-03
11-03
11-03
11-03
11-03
聚焦Policy
当好农民工的“护薪人” 近日,罗某等7名农民工在收到被拖欠的工资后,纷纷打电话向江西省南昌市...
“通讯录里所有人都知道我欠钱了” □ 本报记者 韩丹东 □ 本报见习记者 张守坤 ...
大连宝马车撞人案肇事司机被判死刑 本报讯 记者韩宇 10月29日,辽宁省大连市中级人民法院一审...
医院财务迷上网络赌博输光5000万元公款 □ 本报记者 马维博 □ 本报通讯员 汪宇堂 曹...
辊环车削 雕琢毫厘(工匠绝活) 【绝活看点】 23年来,雷虎始终扎根一线,改进钢材轧制工艺...
交警严查超标电动自行车挪用“白牌” 截至昨晚6时,处罚电动自行车违法行为共计6585笔;下一步将...
明起寒潮来袭 北方气温普降10℃以上 中央气象台预计,本周日北京平原地区最低气温降至-4℃左右...
多种蔬菜价格降幅达五成 包括菠菜、蒿子秆等 预计本月中旬蔬菜恢复供需平衡 本报讯(记者...
北京周日最低气温或达-4℃ 本报讯(记者 赵婷婷)北京青年报记者昨天从中央气象台获悉,新一股...
昌平一家四口确诊新冠肺炎 天通北苑第二社区升级为中风险地区 朝阳两涉疫校区及16所学校停课 ...