Elasticsearch教程
Elasticsearch教程,Elasticsearch是什么,Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。
Elasticsearch诞生背景
Elasticsearch诞生背景教程,Shay Banon 创建了 “一个从头构建的分布式解决方案”,并使用了一个公共接口,即 HTTP 上的 JSON,它也适用于 Java 以外的编程语言。Shay Banon 在 2010 年 2 月发布了 Elasticsearch 的第一个版本。
Elasticsearch特点
Elasticsearch特点,Elasticsearch特点教程,可以作为一个大型分布式集群(数百台服务器)技术,处理 PB 级数据,服务大公司;也可以运行在单机上,服务小公司。
Lucene简介
Lucene简介,Lucene 提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。Lucene 是一个成熟的免费开源工具。Lucene 是当前以及最近几年最受欢迎的免费 Java 信息检索程序库。
Elasticsearch使用场景
Elasticsearch使用场景,Elasticsearch使用场景教程,Elasticsearch 的使用场景非常多,其中典型的使用场景有:记录和日志分析、采集和组合公共数据、全文搜索、事件数据和指标和数据可视化。
ELK环境搭建
ELK环境搭建教程,ELK 作为一个日志收集和检索系统,其实是是三个组件的缩写, 分别是 elasticsearch, logstash, kibana。ELK 平台可以用于实现日志收集、日志搜索和日志分析。
ELK HelloWorld
ELK HelloWorld教程,Elasticsearch 为我们提供了丰富的 API 来操作其数据,不过这些 API 有点还是比较复杂的,好在,我们可以通过 Kibana 的控制台工具来测试与学习 Elasticsearch 的 API。
Elasticsearch相关概念
Elasticsearch相关概念,Elasticsearch相关概念介绍,Elasticsearch 中的相关概念主要涉及到索引、类型、文档、字段、映射、节点、分片和副本。
Elasticsearch新增索引
Elasticsearch新增索引,Elasticsearch 将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合。类比传统的关系型数据库领域来说,索引相当于 SQL 中的一个数据库,或者一个数据存储方案(schema)。
Elasticsearch查看索引
Elasticsearch查看索引教程,Elasticsearch 中默认会有几个索引,用于存储系统系统默认的配置信息,同时,我们自己也可以新建索引,我们需要查看所有的索引,可以使用 GET 方法。
Elasticsearch删除索引
Elasticsearch删除索引教程,在 Elasticsearch 中我们自己创建的索引可以进行删除,系统默认的索引我们最好不要操作,删除我们需要的索引,直接使用 DELETE 方法即可。
Elasticsearch修改文档
Elasticsearch修改文档,Elasticsearch修改文档教程,我们在 Elasticsearch 中,创建文档之后,还可以再次更新文档的内容,更新文档的内容有两种方式,即:直接替换的方式和更新的方式。
Elasticsearch删除文档
Elasticsearch删除文档教程,在 Elasticsearch 中我们自己创建的文档可以进行删除,系统默认的文档我们最好不要操作,删除我们需要删除的文档,直接使用 DELETE 方法即可。
Elasticsearch搜索文档
Elasticsearch搜索文档,Elasticsearch搜索文档教程,Elasticsearch 的最核心的功能就是搜索功能,我们可以使用最简单的搜索功能,列出某个索引下面的所有的文档内容。
Elasticsearch查询字符串
Elasticsearch查询字符串,Elasticsearch查询字符串教程,Elasticsearch 的搜索主要有两种方式,即:使用查询字符串进行搜索和使用 DSL 进行查询,其中查询字符串的方式比较复杂,用的比较少。
Elasticsearch DSL搜索
Elasticsearch DSL搜索教程,Elasticsearch 的搜索主要有两种方式,即:使用 查询字符串 进行搜索和使用 DSL 进行查询,DSL 的全称为 Domain Specified Language,其中 DSL 的方式使用起来更方便。
Elasticsearch分页查询
Elasticsearch分页查询,Elasticsearch分页查询教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,还可以指定 from 和 size 两个字段来进行分页搜索。
Elasticsearch查询指定字段
Elasticsearch查询指定字段,Elasticsearch查询指定字段教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,还可以指定我们只需要展示的字段名,只需将其写在 `_source` 字段即可。
Elasticsearch多查询条件
Elasticsearch多查询条件教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,还可以指定多个查询条件,对结果进行过滤,指定多个查询条件,我们可以通过 query 里面的 bool 来指定。
Elasticsearch全文检索
Elasticsearch全文检索教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,还可以使用全文检索,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,然后返回结果。
Elasticsearch短语搜索
Elasticsearch短语搜索教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,还可以使用短语搜索,短语搜索要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才能作为结果返回。
Elasticsearch高亮搜索
Elasticsearch高亮搜索,Elasticsearch高亮搜索教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,我们可以使用 highlight 来指定我们需要将搜索结果中高亮的字段。
Elasticsearch分组搜索
Elasticsearch分组搜索,Elasticsearch分组搜索教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,我们可以使用 aggs 来实现类似 sql 的 group 聚合搜索。
Elasticsearch分组平均数
Elasticsearch分组平均数,Elasticsearch分组平均数教程,我们在使用 Elasticsearch 的 DSL 进行搜索时,使用了 aggs 实现了 group 聚合搜索后,还可以再次使用 avg 对结果求平均数。
Elasticsearch分布式原理
Elasticsearch分布式原理,Elasticsearch 对复杂的分布式机制,比如分片,副本,负载均衡等等,全部隐藏起来了。Elasticsearch 是一套分布式的系统,分布式是为了应对大数据量隐藏了复杂的分布式机制。
shared和replica梳理
shared和replica梳理,shared和replica梳理,一个 index 包含多个 shard。(一个 index 包含 3T 的数据,在三台机器上分别部署了一个 shared,则一共是三个 shared,每个 shared 会均衡的负载 1T 的数据。)
Elasticsearch横向扩容
Elasticsearch横向扩容,Elasticsearch横向扩容讲解,横向扩容过程,如何超出扩容极限,以及如何提升容错性?primary & replica 自动负载均衡,6 个 shard,3 primary,3 replica。
Elasticsearch容错机制
Elasticsearch容错机制,Elasticsearch容错机制详解,三个 node,一共有三个 primary shared 和六个 replica shared。node1 上有 P0,R1,R2,node2 上有 R0,P1,R2-2,node3 上有 R0-2,R1-2,P2。
Elasticsearch document
Elasticsearch document,document全量替换,语法与创建文档是一样的,如果 document id 不存在,那么就是创建;如果 document id 已经存在,那么就是全量替换操作,替换 document 的 json 串内容。
Elasticsearch并发控制
Elasticsearch并发控制,悲观锁,悲观锁,就是各种情况下,都上锁,上锁之后,就只有一个线程可以操作这一条数据了,当然,不同的场景下,上的锁不同,有行级锁,表级锁,读锁,写锁。
Elasticsearch更新文档
Elasticsearch更新文档,Elasticsearch更新文档教程,在 Elasticsearch 中,要更新一个文档,有两种方法,即,使用 PUT 方法直接覆盖原来的记录与使用 POST 修改文档的具体的字段信息。
Elasticsearch groovy脚本
Elasticsearch groovy脚本教程,在 Elasticsearch 中,其实是有个内置的脚本支持的,可以基于 groovy 脚本实现各种各样的复杂操作,我们只需要将脚本放在 Elasticsearch 的 script 目录下。
Elasticsearch upsert操作
Elasticsearch upsert操作教程,在 Elasticsearch 中,upsert 操作用于如果指定的 document 不存在,就执行 upsert 中的初始化操作;如果指定的 document 存在,就执行 doc 或者 script 指定的 partial update 操作。
Elasticsearch批量查询mget
Elasticsearch批量查询mget教程,在 Elasticsearch 中,mget 操作用于批量查询文档,即,一次查询多条文档,同时,mget 操作不仅可以一次查询相同的 index 的数据,还可以一次查询不同 index 下的数据。
Elasticsearch bulk批量操作
Elasticsearch bulk批量操作教程,在 Elasticsearch 中,bulk 用于批量操作,常用的操作,比如 delete、create、index update 等都支持 bulk 操作。
Elasticsearch分布式文档存储
Elasticsearch分布式文档存储,distributed document store,Elasticsearch 在跑起来以后,其实起到的第一个最核心的功能,就是一个分布式的文档数据存储系统。Elasticsearch 是分布式的文档数据存储系统。
Elasticsearch文档分片
Elasticsearch文档分片,document shared路由概念,一个 document 会被分成多片,每片都在一个 shared 中,所以说,一个 document,只能存在于一个 shared 中。
Elasticsearch写一致性及quorum机制
写一致性及quorum机制,one all quorum,consistency,one(primary shard),all(all shard),quorum(default)
Elasticsearch bulk json格式
Elasticsearch bulk api,bulk api json格式,bulk 中的每个操作都可能要转发到不同的 node 的 shard 去执行。
Elasticsearch search timeout机制揭秘
Elasticsearch search timeout机制揭秘,搜索结果的含义,我们如果发出一个搜索请求的话,会拿到一堆搜索结果,这个搜索结果里的各种数据,都代表了什么含义
Elasticsearch多索引搜索
Elasticsearch搜索多个index,multi-index&multi-type搜索模式,client 发送一个搜索请求,会把请求打到所有的 primary shared 上去执行,因为每个 shared 都包含部分搜索数据,所以每个 shared 上都可能包含搜索请求的结果。
Elasticsearch分页搜索
Elasticsearch分页搜索,Elasticsearch分页搜索教程,我们在使用 Elasticsearch 进行分页搜索时,通过指定 from 和 size 两个字段来分别指定从哪条记录开始获取和获取多少条记录。
Elasticsearch查询字符串
Elasticsearch查询字符串,我们在使用 Elasticsearch 进行搜索时,可以使用查询字符串的形式,查询字符串有三种表现形式,即,不带任何符号的匹配、带 + 号的匹配和带 - 号的匹配。
Elasticsearch mapping
Elasticsearch mapping教程,在 Elasticsearch 中,自动或手动为 index 中的文档建立的一种数据结构和相关配置,简称为 mapping,mapping 中包含了每个 field 对应的数据类型,以及如何分词等设置。
Elasticsearch exact value
Elasticsearch exact value,Elasticsearch exact value教程,Elasticsearch 的搜索支持精确匹配搜索,即 exact value,也就是说,搜索项必须与我们的搜索词完全匹配才会被展示出来。
Elasticsearch倒排索引原理
Elasticsearch倒排索引原理,Elasticsearch 使用一种称为倒排索引的结构,它适用于快速的全文搜索。一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。
Elasticsearch分词器
Elasticsearch分词器,什么是分词器,分词器就是切分词语,normalization,提升 recall 召回率。给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行 normalization(时态转换,单复数转换)。
Elasticsearch mapping数据类型
Elasticsearch mapping数据类型教程,往 Elasticsearch 里面直接插入数据,Elasticsearch 会自动建立索引,同时建立其对应的 mapping,mapping 中就自动定义了每个 field 的数据类型。
Elasticsearch创建mapping
Elasticsearch创建mapping教程,在 Elasticsearch 中,我们在创建索引之前,还可以手动创建 mapping,创建完 mapping 之后,我们还可以新增 mapping 的字段,但不能修改 mapping 的字段。
Elasticsearch Query DSL
Elasticsearch Query DSL,什么是Query DSL,Query DSL 是 Elasticsearch 的核心,搜索方面的项目大部分时间都耗费在对查询结果的调优上。因此对 Query DSL 的理解越深入,越能节省项目时间,并给用户好的体验。
Elasticsearch query与filter
Elasticsearch query与filter,Elasticsearch filter与query教程,Elasticsearch 中的查询有 filter 和 query 两种形式,filter,仅仅只是按照搜索条件过滤出需要的数据而已,不计算任何相关度分数,对相关度没有任何影响。
Elasticsearch query查询
Elasticsearch query查询,Elasticsearch query查询,Elasticsearch 的 query 查询支持多种模式,即查询所有、查询某个字段、查询多个字段、范围查询、精确查询和多精确查询等。
Elasticsearch explain
Elasticsearch explain,Elasticsearch 的 explain 用于检查查询中的错误,一般用在那种特别复杂庞大的搜索下,比如一下子写了上百行的搜索,这个时候可以先用 validate api 去验证一下,搜索是否合法。
Elasticsearch排序
Elasticsearch排序,Elasticsearch 的查询默认情况下,是按照 `_score` 降序排序的,然而,某些情况下,可能没有有用的 `_score`,比如说 filter,这时候我们可以自定义排序规则。
Elasticsearch分数计算算法
Elasticsearch分数计算算法,Elasticsearch分数计算算法教程,Elasticsearch 的分数计算算法主要涉及到 relevance score 算法和 Term frequency 算法。
Elasticsearch倒排索引与正排索引
Elasticsearch倒排索引与正排索引教程,在 Elasticsearch 中,搜索的时候,要依靠倒排索引,排序的时候,需要依靠正排索引,看到每个 document 的每个 field,然后进行排序,所谓的正排索引,其实就是 doc values。
Elasticsearch query phase与fetch phase
Elasticsearch query phase工作流程,Elasticsearch 搜索请求发送到某一个 coordinate node,构构建一个 priority queue,长度以 paging 操作 from 和 size 为准,默认为 10。
Elasticsearch scroll滚动搜索
Elasticsearch scroll滚动搜索教程,在 Elasticsearch 中,如果一次性要查出来比如 10 万条数据,那么性能会很差,此时一般会采取用 scroll 滚动查询,一批一批的查,直到所有数据都查询完处理完。
Elasticsearch分词器
Elasticsearch分词器教程,Elasticsearch 中默认的分词器主要有 standard tokenizer、standard token filter、lowercase token filter 和 stop token filer。
Elasticsearch根对象
Elasticsearch根对象教程,Elasticsearch 中的根对象就是某个 doc 对应的 mapping json,包括了 properties,metadata(_id,_source,_type),settings(analyzer),其他 settings(比如 include_in_all)等。
Elasticsearch重建索引reindex
Elasticsearch重建索引reindex教程,Elasticsearch 中一个 field 的设置是不能被修改的,如果要修改一个 Field,那么应该重新按照新的 mapping,建立一个 index,然后将数据批量查询出来,重新用 bulk api 写入 index 中。
Elasticsearch document写入原理
document写入大概分为以下几步1. 数据写入 buffer。2. commit point。3. buffer 中的数据写入新的 index segment。4. 等待在 os cache 中的 index segment 被 fsync 强制刷到磁盘上。5. 新的 index sgement 被打开,供 search 使用。6. buffer被清空。