分片内部原理 分片是如何工作的 为什么ES搜索是近实时性的 为什么CRUD 操作也是实时性 ES 是怎么保证更新被持久化时断电也不丢失数据 为什么删除文档不会立即释放空间 refresh, flush, 和 optimize API 作用 使文本可被搜索 倒排索引的结构 词项 文档列表 Term | Doc 1 | Doc 2 | Doc 3 | ... ------------------------------------ brown | X | | X | ... fox | X | X…
_cat参数允许你查看集群的一些相关信息,如集群是否健康,有哪些节点,以及索引的情况等的. 检测集群是否健康 curl localhost:9200/_cat/health?v 说明: curl 是一个利用URL语法在命令行下工作的文件传输工具 9200 访问集群的端口号,可以修改.通过配置文件更改,一般不建议更改 _cat 前缀 _ 是URL参数的一个习惯 ?v 通过?v会显示每一列的含义 下面的返回的响应信息: epoch      timestamp cluster       statu…
ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city": { "terms": { "field": "departureCitys" //字段 } } } } 父子结构的索引的聚合 POST product/_search { "size": 0, "aggs&quo…
短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_search { "query": { "match_phrase": { "title": "quick brown fox" } } } //查询分词之后连续的 //例如 brown fox 可以查询到,但是quick fox 查询…
分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 一个集群拥有相同的cluster.name 配置的节点组成, 它们共同承担数据和负载的压力 主节点负责管理集群的变更例如增加.删除索引,或者增加.删除节点等. 而主节点并不需要涉及到文档级别的变更和搜索等操作 集群健康 1.GET /_cluster/health 返回值中的status 是我们关注…
扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引无扩容因子 - 如何判断一个请求过来,我的信息在哪个分片上面 shard = hash(routing) % number_of_primary_shards routing 大致是指文档的id 分片预分配 一个分片存在于单个节点, 但一个节点可以持有多个分片 一个拥有两个分片的索引可以利用第二个节…
高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "size": 200, "query": { "match_phrase": { "name": "上海" } }, "highlight": { "fields": { "…
ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排序的,而且进行了双字段的排序.当productid 相同时的文档是根据下面的那个排序字段进行的排序 POST /product/_search { "query": { "bool": { "filter": { "term":…
父子结构 父亲type属性查询子type 的类型 父子结构的查询,可以通过父亲类型的字段,查询出子类型的索引信息 POST /product/_search { "query": { "has_parent": { "parent_type": "base", "query": { "term": { "productId": { "value":…
ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两种基本类型区别 4 ES 入门记录之 match和term查询的区别 5 ElasticSearch 学习记录之ES几种常见的聚合操作 6 ElasticSearch 学习记录之父子结构的查询 7 ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查…