Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来继续更新. 之前我们聊过了Elasticsearch 的索引和文档,不太熟悉的话可以先翻阅一下前文.今天再一起聊一下 Elasticsearch 的分词器. 关于分词 如果你是讲 Elasticsearch 作为搜索引擎,那么你应该需要对分词进行了解,Elasticsearch 的分词是将全文本转换…
在Elasticsearch中,文档(document)是所有可搜索数据的最小单位.它被序列化成JSON存储在Elasticsearch中.每个文档都会有一个唯一ID,这个ID你可以自己指定或者交给Elasticsearch自动生成. 如果延续我们之前不恰当的对比RDMS的话,我认为文档可以类比成关系型数据库中的表. 元数据 前面我们提到,每个文档都有一个唯一ID来标识,获取文档时,"_id"字段记录的就是文档的唯一ID,它是元数据之一.当然,文档还有一些其他的元数据,下面我们来一一介…
前文我们提到,Elasticsearch的数据都存储在索引中,也就是说,索引相当于是MySQL中的数据库.是最基础的概念.今天分享的也是关于索引的一些常用的操作. 创建索引 curl -X PUT "localhost:9200/jackey?pretty" ES创建索引使用PUT请求即可,上面是最简单的新建一个索引的方法,除此之外,你还可以指定: Settings Mappings aliases 索引名称有以下限制: 必须是小写 不能包含:\,/,*, ?, ", <…
基本概念 索引: 类似于MySQL的表.索引的结构为全文搜索作准备,不存储原始的数据. 索引可以做分布式.每一个索引有一个或者多个分片 shard.每一个分片可以有多个副本 replica. 文档: 类似与MySQL的一行记录. 映射: 所有文档写入索引之前,会进行分析, 分析将输入的文本进行分割为词条,分析哪些词条会被过滤. 文档类型: 每个文档都可以有不同的结构. 不同的文档类不能为相同的属性设置不同的类型. [同一索引中所有文档类型中,一个title字段必须是相同的类型] RestFul…
前面我们聊了 Elasticsearch 的索引.搜索和分词器,今天再来聊另一个基础内容-- Mapping. Mapping 在 Elasticsearch 中的地位相当于关系型数据库中的 schema,它可以用来定义索引中字段的名字.定义字段的数据类型,还可以用来做一些字段的配置.从 Elasticsearch 7.0开始,Mapping 中不在乎需要定义 type 信息了,具体原因可以看官方的解释. 字段的数据类型 我们刚刚提到 Mapping 中可以定义字段的数据类型,这可能是 Mapp…
在前文中我们曾经聊过搜索文档的方法,Elasticsearch 一般适用于读多写少的场景,因此我们需要更多的关注读操作. Elasticsearch 提供的 Search API 可以分为 URI Search 和 Request Body Search 两大类.从名称上可以直观的看出,URI Search 是使用URI的参数传递参数给 Elasticsearch,Request Body Search 则是将参数放到 Body 中进行传递,下面我们具体来看一下. URI Search 首先我们…
今天来聊一个 Elasticsearch 的另一个关键概念--相关性算分.在查询 API 的结果中,我们经常会看到 _score 这个字段,它就是用来表示相关性算分的字段,而相关性就是描述一个文档和查询语句的匹配程度. 打分的本质其实就是排序,Elasticsearch 会把最符合用户需求的文档排在最前面. 在 Elasticsearch 5.0 之前,相关性算分算法采用的是 TF-IDF 算法,而在5.0之后采用的是 BM 25 算法.听到这也许你会比较疑惑,想知道这两个算法到底是怎么样的.别…
elasticsearch-head可理解为跟DBeaver一样是一个数据可视化工具,但是这个工具并没有理想中那么好用坑也是很多,我已经在我的github上fork了一份修改后的版本:https://github.com/zhaoyunxing92/elasticsearch-head 系列文章 elasticsearch入门到放弃之docker搭建 es环境搭建 elasticsearch入门到放弃之x-pack安全认证 x-pack保驾护航你的es elasticsearch入门到放弃之el…
原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. 1.1 基…
高效管理 Elasticsearch 中基于时间的索引 转自:http://stormluke.me/es-managing-time-based-indices-efficiently/ 用 Elasticsearch 来索引诸如日志事件等基于时间的数据的人可能已经习惯了“每日一索引”模式:使用以天为粒度的索引名字来存放当天的日志数据,一天过去后再建一个新索引.新索引的属性可以由索引模板来提前控制. 这种模式很容易理解并且易于实现,但是它粉饰了索引管理的一些复杂的地方: 为了达到较高的写入速度…