摘要: 主要知识点 1、对搜索执行结果的说明 2、timeout机制讲解 一、对执行 GET /_search 的结果的说明 执行结果如下(只保留部分) { "took": 29, "timed_out": false, "_shards": { "total": 16, "successful": 16, "failed": 0 }, ... 阅读全文
posted @ 2018-02-24 15:42 outback123 阅读(436) 评论(0) 推荐(0) 编辑
摘要: bulk json格式的理解 一、常规格式 按常规理解,bulk中json格式可以是以下方式 [{ "action": { }, "data": { } }] 这种方式对程序员友好,可读性好。但是如果写成这样的话,es拿到这种格式的json串以后,要按照下述流程去进行处理: (1)将json数组解析为JSONArray对象,这个时候,整个数据,就会在内存中出现一份... 阅读全文
posted @ 2018-02-24 14:24 outback123 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 当客户端发送一次读请求时,大致会经过以下几个步骤 1、客户端发送一个请求过去,es的一个node接收到这个请求(随机的node),这个node就被es内部分配成coordinating node(协调节点) 2、coordinate node对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮询算法,在primary shard以及其所有re... 阅读全文
posted @ 2018-02-24 13:52 outback123 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 主要知识点: consistency one all quorum 一、consistency one(primary shard),all(all shard),quorum(default) es的一致性主要有两个方面: 1、使用lucene索引机制带来的refresh问题 2、使用分片和复制带来的副本一致性问题(consistency:one、all、qu... 阅读全文
posted @ 2018-02-24 12:16 outback123 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 当客户端发送一次请求时,大致会经过以下几个步骤 (1)客户端发送一个请求过去,es的一个node接收到这个请求(随机的),这个node就被es内部分配成coordinating node(协调节点) (2)coordinating node对这次请求的document进行路由分发(由上一节的路由算法),将请求转发给对应的node(primary shard) (3)实际的nod... 阅读全文
posted @ 2018-02-24 10:36 outback123 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 主要知识点 1、document路由到shard的理解及原理 2、路由算法:shard = hash(routing) % number_of_primary_shards 3、routing值(_id or custom routing value) 4、primary shard创建之后不可变的原因 一、document路由到shard理解及原理 在es中,... 阅读全文
posted @ 2018-02-24 09:59 outback123 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: 主要知识点: 初识distributed document store 一、distributed document store(分布式文档存储系统) Elasticsearch在运行起来以后,他的第一个最核心的功能就是一个分布式的文档数据存储系统。主要有以下三个慨念: 分布式的:es可以实现分布式,可以很方便的扩容。 文档数据:es可以存储和操作json文档类型的数据,... 阅读全文
posted @ 2018-02-24 08:58 outback123 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 主要知识点 1、bulk语法 2、bulk使用时的注意事项 3、bulk size 对es性能的影响 一、bulk语法 每一个操作要两个json串(delete操作除外),每个json串占一行不能换行,语法如下: {"action": {"metadata"}} {"data"} 具体写法如下: {"index": {"_index": "test_index",... 阅读全文
posted @ 2018-02-24 08:10 outback123 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 主要知识点 一、mget批量查询的好处 get查询就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的。如果使用mget进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的性能开销缩减100倍,这样可以更好的优化性能。 二、mget的语法 GET /_mget { "docs" : [{j... 阅读全文
posted @ 2018-02-24 06:53 outback123 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 主要知识点 (1)partial update内置乐观锁并发控制 (2)retry_on_conflict post /index/type/id/_update?retry_on_conflict=5&version=6 一、一般情况下partial update实现过程 用户直接修改field,然后发送给应用程序,由应用程序直接发送给ES,和全量替换... 阅读全文
posted @ 2018-02-23 22:11 outback123 阅读(185) 评论(0) 推荐(0) 编辑