ElasticSearch笔记
椰子Tyshawn
你眼中的世界就是你自己的样子。
展开
-
Elasticsearch必知必会
前置知识:Elasticsearch基本概念与核心原理Elasticsearch数据建模1. Elasticsearch的分布式架构原理是什么?Elasticsearch是分布式的, 在多台机器上启动ES进程实例, 组成一个ES集群. ES集群中的节点会选举出一个master节点来管理集群, 比如负责索引的创建与删除, 负责主分片与副本分片的身份切换等等. ES集群的master节点选举算...原创 2020-02-02 17:55:34 · 589 阅读 · 1 评论 -
Elasticsearch数据建模
本文基于Elasticsearch7.x前置知识:Elasticsearch MappingElasticsearch 如何处理存在关联关系的数据?什么是数据建模(Data Modeling)?数据建模是创建数据模型的过程, 数据模型是对真实世界进行抽象描述的一种工具和方法, 实现对现实世界的映射.在实际开发中, 我们的数据都是存储在MySQL中, Elasticsearch数据建...原创 2020-01-21 17:22:52 · 373 阅读 · 0 评论 -
Elasticsearch使用Ingest Pipeline进行数据预处理
Elasticsearch可以使用自身的Ingest Pipeline功能进行数据预处理, 无须借助Logstash.Ingest Pipeline介绍Ingest Pipeline 就是在文档写入Data Node之前进行一系列的数据预处理, 进行数据预处理的就是processor, 一组处理器构成了Pipeline. 所有的预处理都在Ingest Node上执行, 默认情况下所有节点都是...原创 2020-01-15 21:54:07 · 3616 阅读 · 0 评论 -
Elasticsearch 如何处理存在关联关系的数据?
关系数据库的三大范式什么是范式? 范式就是数据建模的规则.第一范式: 确保每列保持原子性.数据库表中的所有字段都是不可分割的原子值.第二范式: 确保表中的每列都和主键相关.一张数据库表中只能保存一种数据, 不可以把多种数据保存在同一张数据库表中. 比如订单相关的信息会设计三张表: 订单表, 订单项表, 商品表.第三范式: 确保每列都和主键直接相关, 而不是间接相关.比如一个订单表里...原创 2020-01-14 23:09:30 · 2461 阅读 · 0 评论 -
Elasticsearch重建索引
本文基于Elasticsearch7.x在聊重建索引之前, 我们先了解下Elasticsearch基本概念与核心原理我们知道Elasticsearch的索引一旦创建是不可变更的, 如果我们要修改索引的Setting, Mapping, 这时就需要重建索引. Elasticsearch内置了两种重建索引的API:Update By Query在现有索引上重建索引.Reindex在其...原创 2020-01-14 23:02:43 · 1745 阅读 · 0 评论 -
Elasticsearch聚合分析Java Client
本文基于Elasticsearch7.x本文将上篇Elasticsearch聚合分析Rest API里的实例转化为Java ClientBucket AggregationBucket Aggregation是一系列满足特定条件的文档的集合, 类似于SQL语句里的分组功能.(1) main方法public static void main(String[] args) throws...原创 2020-01-10 10:04:02 · 1125 阅读 · 0 评论 -
Elasticsearch聚合分析Rest API
本文基于Elasticsearch7.x什么是聚合(Aggregation)Elasticsearch除了数据搜索之外, 提供的针对数据的统计分析功能.聚合的分类Bucket Aggregation一系列满足特定条件的文档的集合.Metric Aggregation一系列数学运算, 可以对文档字段进行统计分析.Pipeline Aggregation对其他聚合结果进行二次...原创 2020-01-07 22:36:08 · 769 阅读 · 0 评论 -
Elasticsearch控制相关度分数API
Elasticsearch可以控制相关度分数计算的, 让满足一些条件的分数更高.在学习本篇博客前先了解下Elasticsearch全文搜索之基础语法APIRest APIElasticsearch有三种控制相关度分数的方法:boostboostingfunction_score添加搜索实例数据POST /blogs/_bulk{"index": {}}{"post_dat...原创 2020-01-02 22:04:04 · 1911 阅读 · 0 评论 -
Elasticsearch分页API
本文基于Elasticsearch7.x版本.在学习本篇博客前先了解下Elasticsearch全文搜索之基础语法APIRest APIElasticsearch分页api有三种:from/sizesearch afterscrollsearch after 和 scroll用来解决深度分页时的性能问题.分布式系统中深度分页的问题Elasticsearch是分布式系统...原创 2020-01-02 17:45:32 · 2198 阅读 · 1 评论 -
ElasticSearch 复合搜索与过滤API
本文基于Elasticsearch7.x全文搜索在搜索时, 会对输入的搜索文本进行分词, 然后去倒排索引中进行匹配, 只要能匹配上任意一个关键词(词项), 就可以作为结果返回.在学习本篇博客前先了解下Elasticsearch全文搜索之基础语法APIRest API添加搜索实例数据POST /blogs/_bulk{"index": {}}{"post_date": "2020...原创 2020-01-02 15:42:55 · 1092 阅读 · 0 评论 -
ElasticSearch 全文搜索之基础语法API
全文实例基于Elasticsearch7.x这篇博客介绍ElasticSearch全文搜索的基础语法, 后续的复合搜索(bool)和过滤(filter)都是基于这些基础语法的.全文搜索在搜索时, 会对输入的搜索文本进行分词, 然后去倒排索引中进行匹配, 只要能匹配上任意一个关键词(词项), 就可以作为结果返回.Rest API添加全文搜索实例数据POST /blogs/_bulk...原创 2020-01-02 14:55:16 · 1500 阅读 · 0 评论 -
Elasticsearch基础增删改查与批量操作API
本文基于Elasticsearch7.x版本.基础增删改查新增文档(1) 语法a. 语法一PUT /index_name/_doc/id{ "字段名" : "字段值" ...}POST /index_name/_doc/id{ "字段名" : "字段值" ...}如果id不存在, 则创建新文档. 如果id存在, 则覆盖旧文档, 同时版本号增加.b. 语法二...原创 2019-12-25 18:54:19 · 660 阅读 · 0 评论 -
Elasticsearch基本概念与核心原理
本文基于Elasticsearch7.x版本.什么是ElasticsearchElasticsearch是一个分布式的搜索引擎和数据分析引擎, 提供了全文检索, 同义词处理, 相关度排名, 复杂数据分析, 海量数据的近实时处理等功能, Elasticsearch作为传统数据库的一个补充, 提供了很多数据库所不不能提供的功能.Elasticsearch的核心概念Elasticsearch...原创 2019-12-20 18:32:51 · 1271 阅读 · 0 评论 -
Elasticsearch搜索推荐
本文基于Elasticsearch7.x版本.什么是搜索推荐?当我们在Google上搜索信息时, Google会推荐一些相关联的搜索词, 即使我们拼写错了关键词, Google仍然会推荐出我们想要的内容, 这就是搜索推荐.Elasticsearch SuggestersElasticsearch Suggesters 包含四个功能, 下面分别介绍这四个功能及其Java Client...原创 2019-12-16 22:32:27 · 1258 阅读 · 0 评论 -
Elasticsearch Mapping
什么是Mapping?定义索引中字段的数据结构, 如字段名, 字段类型, 分词器等等. 类似于MySQL中的表结构.在Elasticsearch7.0之前一个index可以定义多个type, 在7.0之后就不再手动定义type, 所有index都只有一个默认的type: _doc.常见的字段类型核心类型(1) 字符串text 和 keyword需要进行全文搜索的字符串设置为t...原创 2019-12-02 10:32:41 · 510 阅读 · 0 评论 -
IK Analyzer 热更新自定义词典
IK Analyzer的GitHub地址:https://github.com/medcl/elasticsearch-analysis-ikIK Analyzer 自己有一个热更新方案, 但不推荐使用, 我们可以修改下源码, 从mysql读取中读取自定义的词典.本文Elasticsearch安装的是5.2.0版本的, 所以对应的IK Analyzer也是安装的5.2.0版本.自定义...原创 2019-11-15 15:21:27 · 1277 阅读 · 2 评论 -
Elasticsearch倒排索引和分词器
倒排索引Elasticsearch是基于lucene实现的, 而lucene是基于倒排索引实现的, 所以我们有必要了解下什么是倒排索引.正排索引和倒排索引的区别(1) 正排索引文档ID到文档内容的关联.文档ID文档内容1Mastering Elasticsearch2Elasticsearch Server3Elasticsearch Essenti...原创 2019-11-13 23:05:46 · 474 阅读 · 0 评论 -
CentOS7安装Elasticsearch
Elasticsearch需要JDK1.8以上的版本.(1) 获取安装包wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz(2) 解压tar -zxvf elasticsearch-6.4.0.tar.gz -C /usr/local/apps/(3) 修改配置文件...原创 2019-11-11 17:46:49 · 542 阅读 · 0 评论 -
ElasticSearch Rest API 一文全搞定
本文通过Kibana来操作ES Rest API.基础增删改查语法(1) 创建/全量替换记录不存在就是创建, 否则是全量替换.PUT /index/type/id { "属性名" : "value" ...}(2) 创建/修改创建 //如果不传id, 则系统自动生成一个UUID POST /index/type/ { "属性名":修改值 } ...原创 2019-11-06 15:40:15 · 14811 阅读 · 1 评论