随笔分类 -  ES二期

摘要:一、深度分页 假如要查10000-10100条数据,有5个分片。但是你不能保证这100条数据全部都在一个分片上 这时ES就会在每个分片上取出前10100条数据,共50500条数据。最后在这50500条数据中取出10000-10100的数据。 总结:先在每个分片中进行单次查询,之后再进行二次查询 二、 阅读全文
posted @ 2022-02-16 18:01 showMeTheCodes 阅读(58) 评论(0) 推荐(0) 编辑
摘要:一、Master选举 1、ping其他所有节点,收到回复的放到一个集合中(包括自己) 2、从集合中选所有具有候选角色的节点 3、从候选列表中选出master,按照版本号选举,版本号越大越优先 4、第3步当集群中有主节点时,已存在的主节点与新选出的主节点比较id,id最小的为主节点 二、脑裂 1、假设 阅读全文
posted @ 2022-02-16 17:03 showMeTheCodes 阅读(205) 评论(0) 推荐(0) 编辑
摘要:一、es容灾机制 二、选举过程中两个重要的角色 1、active master与master的区别 active master节点:主节点。主节点一般不作为数据节点,不进行复杂的数据处理业务 master角色:代表该节点为候选节点,候选节点一般也不作为数据节点,因为如果主节点宕机后候选节点会被升级为 阅读全文
posted @ 2022-02-16 14:29 showMeTheCodes 阅读(221) 评论(0) 推荐(0) 编辑
摘要:一、分片的创建策略 1、分片:数据的载体,类似mysql中表。 每一个分片承载了完整数据中的一部分,每一个分片都存在时,数据才是完整的 2、主分片是数据的一部分,副本分片是主分片的备份 3、7.0之后分片默认一主一副 4、分片的合理容量为10-50G 5、分片有shard reblance策略,体现 阅读全文
posted @ 2022-02-15 22:32 showMeTheCodes 阅读(200) 评论(0) 推荐(0) 编辑
摘要:一、单机服务和分布式 1、单机服务的问题:性能有限(吞吐量等)、可用性差(单机产生故障服务挂掉,不可用)、难以扩展 2、三高 二、分布式集群环境 1、自动发现:集群中节点之间通过9300端口通信,并发现彼此的存在 2、核心配置: cluster.name: 集群名称,唯一确定一个集群。 node.n 阅读全文
posted @ 2022-02-15 20:17 showMeTheCodes 阅读(133) 评论(0) 推荐(0) 编辑
摘要:一、嵌套查询 1、测试数据: 不手动设置索引类型,全部使用dynamic_mapping 1 PUT /order/_doc/1 2 { 3 "order_name": "扫地机器人订单", 4 "desc": "shouji zhong de zhandouji", 5 "goods_count" 阅读全文
posted @ 2022-02-14 16:12 showMeTheCodes 阅读(255) 评论(0) 推荐(0) 编辑
摘要:搜索推荐: 一、Completion Suggester(为主) Completion Suggester会被构建成FST对象,缓存在RAM中,查询速度会变快 1 #complate suggester 2 DELETE suggest_carinfo 3 PUT suggest_carinfo 4 阅读全文
posted @ 2022-02-14 11:57 showMeTheCodes 阅读(35) 评论(0) 推荐(0) 编辑
摘要:一、模糊查询 1、四种情况: 混淆字符(box->fox) 缺少字符(black->lack) 多出字符(sic->sick) 颠倒次序(act->cat) 2、使用fuzzy进行模糊查询: 1 GET product_en/_search 2 { 3 "query": { 4 "fuzzy": { 阅读全文
posted @ 2022-02-14 11:24 showMeTheCodes 阅读(346) 评论(0) 推荐(0) 编辑
摘要:一、前缀搜索 1、概念:以xx开头的搜索,前缀搜索不计算相关度评分 2、测试数据: 1 POST /my_index/_bulk?filter_path=items.*.error 2 {"index":{"_id":"1"}} 3 {"text":"城管打电话喊商贩去摆摊摊"} 4 {"index 阅读全文
posted @ 2022-02-14 08:24 showMeTheCodes 阅读(264) 评论(0) 推荐(0) 编辑
摘要:一、基于_mget的批量查询 1、批量查询指定id 1 GET product/_mget 2 { 3 "ids":[2,3] 4 } 2、查询指定id中某些字段 1 GET product/_mget 2 { 3 "docs": [ 4 { 5 "_id": 2, 6 "_source": [ 7 阅读全文
posted @ 2022-02-13 22:42 showMeTheCodes 阅读(159) 评论(0) 推荐(0) 编辑
摘要:一、脚本查询 1、概念:Scripting是es支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能 2、es5.0之后默认语言是painless 3、 1 #语法:ctx._source.<field-name> ctx可以理解为上下文 2 #将doc为2数据的price属性-1 3 POS 阅读全文
posted @ 2022-02-13 20:30 showMeTheCodes 阅读(256) 评论(0) 推荐(0) 编辑
摘要:一、histogram 1、histogram:直方图、柱状图 2、 1 GET product/_search 2 { 3 "size": 0, 4 "aggs": { 5 "price_histogram": { 6 "histogram": { 7 "field": "price", 8 "i 阅读全文
posted @ 2022-02-11 21:54 showMeTheCodes 阅读(139) 评论(0) 推荐(0) 编辑
摘要:一、基于查询结果的聚合 1、基于query的aggs 1 #价格大于4500的标签进行聚合 2 GET product/_search 3 { 4 "size": 10, 5 "query": { 6 "range": { 7 "price": { 8 "gte": 4500 9 } 10 } 11 阅读全文
posted @ 2022-02-11 18:17 showMeTheCodes 阅读(79) 评论(0) 推荐(0) 编辑
摘要:一、分桶聚合 1、分桶聚合:根据属性进行分桶,把具有某些相同属性的数据放到一起,相当于mysql的group by 举例:JD商城2021年手机销售量,如果采用分桶聚合。可以按照:小米、华为、苹果、其他等品牌进行聚合 2、 1 #统计不同标签的商品数量 2 GET product/_search 3 阅读全文
posted @ 2022-02-11 16:04 showMeTheCodes 阅读(589) 评论(0) 推荐(0) 编辑
摘要:一、自定义分词器 1 #自定义分词器 2 PUT cunstom_analysis 3 { 4 "settings": { 5 "analysis": { 6 "char_filter": { 7 "my_char_filter":{ 字符过滤器,在切词时将指定词语进行替换 8 "type":"ma 阅读全文
posted @ 2022-02-11 09:56 showMeTheCodes 阅读(240) 评论(0) 推荐(0) 编辑
摘要:一、normalization normalization:规范化。在切词之后,包括大小写的转换、去掉语气词停用词(is、an)、单复数的变化 每种分词器的normalization策略不一样,如下图展示 二、char filter char filter:字符过滤器,在切词之前完成操作 1、HTM 阅读全文
posted @ 2022-02-11 07:43 showMeTheCodes 阅读(28) 评论(0) 推荐(0) 编辑
摘要:一、元数据 1、从索引中查询出的结果可以称之为元数据,如下图 2、可以禁止元数据的展示(一般不使用) 使用如下代码查询后,元数据将不再展示 1 GET product/_search 2 { 3 "_source": false, 4 "query": { 5 "match_all": {} 6 } 阅读全文
posted @ 2022-02-10 16:16 showMeTheCodes 阅读(971) 评论(0) 推荐(0) 编辑
摘要:一、概念 ES中的mapping类似于数据库中的表结构。mapping中包含字段名称、类型、字段使用的分词器、是否评分、是否创建索引等属性 二、查看mapping GET index/_mapping 三、常用数据类型 数字类型:long、integer、short、byte、double、floa 阅读全文
posted @ 2022-02-09 17:47 showMeTheCodes 阅读(391) 评论(0) 推荐(0) 编辑
摘要:C 1 #创建索引 2 PUT product 3 #插入数据 4 PUT product/_doc/1 5 { 6 "name": "lyc", 7 "age": 25 8 } R 1 #查询所有索引 2 GET _cat/indices?v 3 #查询指定索引的数据信息 4 GET produc 阅读全文
posted @ 2022-02-09 15:34 showMeTheCodes 阅读(36) 评论(0) 推荐(0) 编辑
摘要:一、集群 1、每个节点就是一个ElasticSearch的实例(在linux中每执行一个es启动,就代表有一个节点启动) 2、集群健康值状态: green:所有主分片和副本分片都健康 yellow:至少有一个副本分片不可用,此时数据是完整的 red:至少有一个主分片不可用 3、健康值检查:_cat/ 阅读全文
posted @ 2022-02-09 14:53 showMeTheCodes 阅读(130) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示