Elasticsearch使用指南
主要对Elasticsearch官方文档进行解读,并提供基于java版本的restful api使用demo。
中间件兴趣圈
《RocketMQ技术内幕》一书作者、RocketMQ开源社区优秀布道师、CSDN2020博客之星TOP2,主打成体系剖析java中间件,已发布RocketMQ、Kafka、Dubbo、Sentinel、Canal、ElasticJob、ElasticSearch等15个专栏。
展开
-
Elasticsearch索引检控之Indices Segments API与Indices Shard Stores
本文将继续介绍elasticsearch索引监控之Indices segments与Indices Shard stores api。1、Indices Segments提供Lucene索引(分片级别)使用的segments(段信息)。其对应的示例代码如下:public static final void test_Indices_segments() { TransportClien...原创 2019-05-12 22:07:12 · 1495 阅读 · 3 评论 -
Elasticsearch Index Monitoring(索引监控)之Index Stats API详解
本文将详细介绍Elasticsearch Index Monitoring监控命令之Index Stats API。索引状态统计。默认情况下,该API会返回所有类型的统计信息,Indices Stats返回如下类型的统计信息:1、docs文档总数量(包含已删除的文档),调用文档删除API后并不会立即将文档物理删除,会保留一段时间,受refreshing the index的影响。其返回示例如...原创 2019-05-07 20:24:17 · 6814 阅读 · 0 评论 -
Elasticsearch Index Templates(索引模板)
索引模板,故名思议,就是创建索引的模板,模板中包含公共的配置(settings)和映射(Mapping),并包含一个简单触发条件,及条件满足时使用该模板创建一个新的索引。注意:模板只在创建索引时应用。更改模板不会对现有索引产生影响。当使用create index API时,作为create index调用的一部分定义的设置/映射将优先于模板中定义的任何匹配设置/映射。一个索引模板示例如下:P...原创 2019-05-04 16:00:43 · 8271 阅读 · 0 评论 -
elasticsearch之索引管理API(Index management)
本节详细介绍了索引管理相关的API,主要包括Index Create、Delete Index、Get index、indices Exists Index、Open/Close Index 、Shrink Index、Split Index、Rollover Index,特别详细介绍了索引的动态扩容与收缩机制。原创 2019-04-30 21:15:17 · 7779 阅读 · 0 评论 -
elasticsearch使用指南之Elasticsearch Index Setting一览表
索引的配置项按是否可以更改分为static属性与动态配置,所谓的静态配置即索引创建后不能修改。1、索引静态配置index.number_of_shards索引分片的数量。在ES层面可以通过es.index.max_number_of_shards属性设置索引最大的分片数,默认为1024,index.number_of_shards的默认值为Math.min(es.index.max_num...原创 2019-04-23 20:19:00 · 5567 阅读 · 2 评论 -
elasticsearc使用指南之ES管道聚合(Pipeline Aggregation)
管道聚合处理来自其他聚合而不是文档集的输出,将信息添加到输出树中。注:关于脚本聚合目前在本文中暂时不会涉及。主要有如下两种管道聚合方式:parentsibling下面一一介绍ES定义的管道聚合。1、Avg Bucket Aggregation同级管道聚合,它计算同级聚合中指定度量的平均值。同级聚合必须是多桶聚合,针对的是度量聚合(metric Aggregation)。示例如下...原创 2019-03-20 19:27:48 · 8806 阅读 · 5 评论 -
Es Bucket聚合(桶聚合) 第二篇-Terms Aggregation与Significant Terms Aggregation
作者介绍:《RocketMQ技术内幕》作者,中间件兴趣圈微信公众号维护者,文末有对应的二维码,关注后可以与作者更好的互动。本章将介绍elasticsearch最重要的桶聚合terms aggregation。1、Terms Aggregation多值聚合,根据库中的文档动态构建桶。基于词根的聚合,如果聚合字段是text的话,会对一个一个的词根进行聚合,通常不会在text类型的字段上使用聚合,...原创 2019-03-14 22:14:20 · 14203 阅读 · 0 评论 -
Es Bucket聚合(桶聚合) 第一篇(常用桶聚合一览)
本篇将开始介绍Elasticsearch Bucket聚合(桶聚合)。Buket Aggregations(桶聚合)不像metrics Aggregations(度量聚合)那样计算字段上的度量,而是创建文档桶,每个文件桶有效地定义一个文档集。除了bucket本身之外,bucket聚合还计算并返回“落入”每个bucket的文档的数量。与度量聚合相反,桶聚合可以嵌套子聚合。这些子聚合将为它们的“父...原创 2019-03-13 21:16:52 · 19089 阅读 · 0 评论 -
Elasticsearch Search API之(Request Body Search 查询主体)
作者介绍:《RocketMQ技术内幕》作者,中间件兴趣圈微信公众号维护者,文末有对应的二维码,关注后可以与作者更好的互动。本文有点长,看完可能需要点耐心,本文详细介绍了es三种分页方式、排序、from、size、source filter、dov values fields、post filter、高亮显示、rescoring、search type、scroll、preference、pref...原创 2019-03-12 23:49:06 · 5947 阅读 · 1 评论 -
ElasticSearch使用指南系列文章索引
1、ElasticSearch Client详解2、Elasticsearch文档读写模型实现原理3、Elasticsearch Document Index API详解、原理与示例4、Elasticsearch Document Get API详解、原理与示例5、Elasticsearch Document Delete API详解、原理与示例6、Elasticsearch Docum...原创 2019-03-09 23:32:37 · 10002 阅读 · 1 评论 -
ES度量聚合(ElasticSearch Metric Aggregations)
从本篇将开始进入ES系列的聚合部分(Aggregations)。本篇重点介绍Elasticsearch Metric Aggregations(度量聚合)。Metric聚合,主要针对数值类型的字段,类似于关系型数据库中的sum、avg、max、min等聚合类型。本例基于如下索引进行试验:public static void createMapping_agregations() { R...原创 2019-03-09 23:14:27 · 7560 阅读 · 2 评论 -
Elasticsearch Search API 概述与URI Search
本节开始,将详细介绍Search API。1、Search API概述详细API如下:public final SearchResponse search(SearchRequest searchRequest, RequestOptions options) throws IOExceptionpublic final void searchAsync(SearchRequest...原创 2018-12-17 19:23:38 · 3026 阅读 · 1 评论 -
Elasticsearch Dynamic Mapping(动态映射机制)
本文基于Elasticsearch6.4.x版本。 Elasticsearch的一个最重要的特性是,它会设法避开你,让你尽可能快地开始探索数据。要为文档建立索引,您不必首先创建索引、定义映射类型和定义字段——您只需为文档建立索引,索引、类型和字段就会自动启动,例如:PUT data/_doc/1 { "count": 5 } 执行上述请求时,索引"data"不必预先创建,该...原创 2018-12-06 22:59:39 · 6526 阅读 · 2 评论 -
Elasticsearch Mapping parameters(主要参数一览)
Elasticsearch在创建索引定义类型时指出如下参数:analyzer指定分词器。elasticsearch是一款支持全文检索的分布式存储系统,对于text类型的字段,首先会使用分词器进行分词,然后将分词后的词根一个一个存储在倒排索引中,后续查询主要是针对词根的搜索。analyzer该参数可以在每个查询、每个字段、每个索引中使用,其优先级如下(越靠前越优先):1、字段上定义...原创 2018-12-01 17:01:35 · 4127 阅读 · 0 评论 -
Elasticsearch Mapping类型映射概述与元字段类型
Mapping,映射,相当于关系型数据库创建语句,定义文档字段及其类型、索引与存储方式。通常会涉及如下方面:文档中哪些字段需要定义成全文索引字段。文档中哪些字段定义为精确值,例如日期,数字、地理位置等。文档中哪些字段需要被索引(能通过该字段的值查询文档)。日期值的格式。动态添加字段的规则定义等。1、类型映射概述1.1 映射类型Elasticsearch支持meta-fields...原创 2018-11-26 13:16:20 · 3318 阅读 · 3 评论 -
Elasticsearch Document Bulk API详解、原理与示例
Bulk API可以在一次API调用中包含多个索引操作,例如更新索引,删除索引等,相当于批量操作。 详细API如下:public final BulkResponse bulk(BulkRequest bulkRequest, RequestOptions options) throws IOExceptionpublic final void bulkAsync(BulkReq...原创 2018-11-18 22:11:51 · 12382 阅读 · 0 评论 -
Elasticsearch Document Multi Get API详解、原理与示例
本文将详细介绍批量获取API(Multi Get API)。详细API如下:public final MultiGetResponse mget(MultiGetRequest multiGetRequest, RequestOptions options) throws IOExceptionpublic final void mgetAsync(MultiGetRequest m...原创 2018-11-15 20:47:13 · 1294 阅读 · 0 评论 -
Elasticsearch Document Update API详解、原理与示例
本文将详细介绍单文档(Document)的更新API,其更新API如下:public final UpdateResponse update(UpdateRequest updateRequest, RequestOptions options) throws IOExceptionpublic final void updateAsync(UpdateRequest updateRe...原创 2018-11-10 19:05:00 · 10873 阅读 · 0 评论 -
Elasticsearch Document Delete API详解、原理与示例
本节本节将重点介绍ElasticSearch Doucment Delete API(根据ID删除文档)。从《ElasticSearch Client详解》可知,ElasticSearch Delete Rest Hign level Delete Api声明如下:public final DeleteResponse delete(DeleteRequest deleteReque...原创 2018-11-06 12:34:42 · 5401 阅读 · 0 评论 -
Elasticsearch Document Get API详解、原理与示例
本节首先罗列了文档Get API,并对GetRequest进行了详细分析,接着通过3个 示例展示Get API的使用,最后重点分析GET API 内部的实现机制(实时性、source过滤、路由、复制组内分片节点倾向性、刷新机制等)原创 2018-10-31 22:13:45 · 11276 阅读 · 1 评论 -
Elasticsearch Document Index API详解、原理与示例
本节将开始介绍Document API,本节将重点介绍ElasticSearch Doucment Index API(新增索引)。 从上节可知,ElasticSearch Index Rest Hign level Index Api声明如下:public final IndexResponse index(IndexRequest indexRequest, RequestO...原创 2018-10-24 21:24:05 · 9911 阅读 · 0 评论 -
Elasticsearch文档读写模型实现原理
ES系列基于ElasticSearch6.4.x版本。1、简介 ElasticSearch,每个索引被分成多个分片(默认每个索引5个主分片primary shard),每个分片又可以有多个副本。当一个文档被添加或删除时(主分片中新增或删除),其对应的复制分片之间必须保持同步。如果我们不这样做,主要对于同一个文档的检索请求,得到的结果将不一致。保持分片副本同步和服务读取的过程就是我们所...原创 2018-10-23 21:27:17 · 2147 阅读 · 0 评论 -
ElasticSearch Client详解
从本文开始,将与大家进入到Elasticsearch的精妙世界中来,基于当前最新的6.4.x版本。 本文将重点探讨ElasticSearch Client的相关知识,重点关注TransportClient与Rest Client。Elasticsearch client 是我们进入ElasticSearch的大门。1、概述 本节描述Elasticsearch提供的Java AP...原创 2018-10-19 21:06:48 · 30800 阅读 · 5 评论 -
Elasticsearch Query DSL概述与查询、过滤上下文
从本节开始,先详细介绍Elasticsearch Query DSL语法,该部分是SearchAPI的核心基础之一。Elasticsearch提供了一个基于JSON的完整查询DSL(领域特定语言)来定义查询。把查询DSL看作是查询的AST(抽象语法树),由两种类型的子句组成:Leaf query clauses(叶查询字句)叶子查询子句指在特定的字段中寻找特定的值,例如匹配、范围查询或te...原创 2019-10-07 11:11:50 · 852 阅读 · 0 评论 -
Elasticsearch Query DSL之全文检索(Full text queries)
本节将详细介绍DSL全文搜索。全文查询包括如下几种模式:match query标准的全文检索模式,包含模糊匹配、前缀或近似匹配等。match_phrase query与match query类似,但只是用来精确匹配的短语。match_phrase_prefix query与match_phrase查询类似,但是在最后一个单词上执行通配符搜索。multi_match query支...原创 2019-10-07 11:51:21 · 1210 阅读 · 0 评论 -
Elasticsearch Query DSL之Term level queries
term_level查询操作的是存储在反向索引(倒排索引)中的准确词根,这些查询通常用于结构化数据,如数字、日期和枚举,而不是全文字段,无需进行分析(分词),term level查询类似于关系型数据库的(where条件过滤)。其查询模式如下:term query查找包含指定字段中精确匹配查询字符串的文档。terms query查找包含指定字段中包含查询词根集合中任意一个精确匹配的文档。...原创 2019-10-08 20:55:18 · 1200 阅读 · 3 评论 -
Elasticsearch Query DSL之Compound queries(复合查询)
本章开始将介绍Elasticsearch DSL查询语法的复合查询。复合查询将其他复合查询或叶子查询进行包装,组合它们的结果和分数,以此改变它们的行为,或从查询字句切换到过滤上下文模式。主要的复合查询包括如下:constant_score querybool querydis_max queryfunction_score queryboosting query本节目录1、co...原创 2019-10-14 21:47:16 · 916 阅读 · 0 评论