Elasticsearch
Elasticsearch笔记
Hereto.
这个作者很懒,什么都没留下…
展开
-
Logstatsh数据同步 - 自定义模板配置中文分词
目录引子查看Logstash默认模板修改模板如下新增如下配置,用于更新模板,设置中文分词重新运行Logstash进行同步引子目前的数据同步,mappings映射会自动创建,但是分词不会,还是会使用默认的,而我们需要中文分词,这个时候就需要自定义模板功能来设置分词了。查看Logstash默认模板GET /_template/logstash修改模板如下{ "order"...原创 2020-04-28 16:41:36 · 928 阅读 · 2 评论 -
logstatsh数据同步 - 数据同步配置
目录logstash同步数据库配置启动logstatshlogstash同步数据库配置上传并解压logstash,位置放在如下:创建文件名:logstash-db-sync.conf,后缀为conf,文件名随意,位置也随意把数据库驱动拷贝 配置内容如下input { jdbc { # 设置 MySql/MariaDB 数据库url以及数据库名...原创 2020-04-28 14:20:03 · 623 阅读 · 0 评论 -
Logstatsh数据同步 - Logstash介绍
目录Logstash安装Logstash插件 logstash-input-jdbc创建索引JDKLogstashLogstash是elastic技术栈中的一个技术。它是一个数据采集引擎,可以从数据库采集数据到es中。我们可以通过设置自增id主键或者时间来控制数据的自动同步,这个id或者时间就是用于给logstash进行识别的id:假设现在有1000条数据,Logstatsh识别后会进行一...原创 2020-04-28 14:02:08 · 430 阅读 · 0 评论 -
Elasticsearch整合SpringBoot - 配置文件
目录创建工程,引入依赖配置yml版本协调Netty issue fix附 elasticsearch6.4.3配置文件Don’t forget!创建工程,引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-da...原创 2020-04-27 15:31:47 · 3473 阅读 · 0 评论 -
Elasticsearch集群脑裂现象探讨
目录什么是脑裂脑裂解决方案ES 7.X什么是脑裂如果发生网络中断或者服务器宕机,那么集群会有可能被划分为两个部分,各自有自己的master来管理,那么这就是脑裂。脑裂解决方案master主节点要经过多个master节点共同选举后才能成为新的主节点。就跟班级里选班长一样,并不是你1个人能决定的,需要班里半数以上的人决定。解决实现原理:半数以上的节点同意选举,节点方可成为新的master。...原创 2020-04-19 14:38:20 · 383 阅读 · 0 评论 -
搭建Elasticsearch集群
目录前置操作配置集群分别启动3台es前置操作当克隆以后,es中的data目录,一定要清空,这里面包含了原先的索引库数据。配置集群修改elasticsearch.yml这个配置文件如下:# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了cluster.name: imooc-es-cluster# 每一个节点的名称,必须不一样node.name: es-nod...原创 2020-04-19 14:35:35 · 306 阅读 · 0 评论 -
Elasticsearch集群的概念
目录引子分片机制es集群搭建的准备工作引子单机es可以用,没毛病,但是有一点我们需要去注意,就是高可用是需要关注的,一般我们可以把es搭建成集群,2台以上就能成为es集群了。集群不仅可以实现高可用,也能实现海量数据存储的横向扩展。分片机制每个索引可以被分片,就相当于吃披萨的时候被切了好几块,然后分给不同的人吃假设索引shop有3个主分片;每个主分片都包含索引的数据,由于目前是单机,所...原创 2020-04-19 14:32:10 · 172 阅读 · 0 评论 -
ES批量操作 bulk
目录基本语法批量操作的类型实操基本语法bulk操作和以往的普通请求格式有区别。不要格式化json,不然就不在同一行了,这个需要注意。{ action: { metadata }}\n{ request body }\n{ action: { metadata }}\n{ request body }\n...{ action: { metadata ...原创 2020-04-19 00:28:49 · 349 阅读 · 0 评论 -
scroll 滚动搜索
一次性查询1万+数据,往往会造成性能影响,因为数据量太多了。这个时候可以使用滚动搜索,也就是 scroll。滚动搜索可以先查询出一些数据,然后再紧接着依次往下查询。在第一次查询的时候会有一个滚动id,相当于一个锚标记,随后再次滚动搜索会需要上一次搜索的锚标记,根据这个进行下一次的搜索请求。每次搜索都是基于一个历史的数据快照,查询数据的期间,如果有数据变更,那么和搜索是没有关系的,搜索的内容还是快...原创 2020-04-18 20:31:18 · 534 阅读 · 0 评论 -
ES深度分页 - 提升搜索量
目录提升搜索量提升搜索量“changing the [index.max_result_window] index level setting”通过设置index.max_result_window来突破10000数据GET /索引/_settingsPUT /索引/_settings{ "index.max_result_window": "20000"...原创 2020-04-18 20:26:48 · 261 阅读 · 0 评论 -
ES深度分页
目录分页查询深度分页分页查询POST /shop/_doc/_search{ "query": { "match_all": {} }, "from": 0, "size": 10}深度分页深度分页其实就是搜索的深浅度,比如第1页,第2页,第10页,第20页,是比较浅的;第10000页,第20000页就是很深了。{ "...原创 2020-04-18 20:18:43 · 547 阅读 · 0 评论 -
DSL搜索 - 高亮highlight
目录高亮显示高亮显示POST /shop/_doc/_search{ "query": { "match": { "desc": "慕课网" } }, "highlight": { "pre_tags": ["<tag>"], "post_tags": ["&l...原创 2020-04-16 23:06:36 · 382 阅读 · 0 评论 -
DSL搜索 - 排序
目录对文本排序es的排序同sql,可以desc也可以asc。也支持组合排序。实操:POST /shop/_doc/_search{ "query": { "match": { "desc": "慕课网游戏" } }, "post_filter": { "range": { "money": { "gt": 55.8...原创 2020-04-16 23:05:39 · 879 阅读 · 0 评论 -
DSL搜索 - 过滤器
目录对搜索出来的结果进行数据过滤。不会到es库里去搜,不会去计算文档的相关度分数,所以过滤的性能会比较高,过滤器可以和全文搜索结合在一起使用。post_filter元素是一个顶层元素,只会对搜索结果进行过滤。不会计算数据的匹配度相关性分数,不会根据分数去排序,query则相反,会计算分数,也会按照分数去排序。使用场景:query:根据用户搜索条件检索匹配记录post_filter:用于...原创 2020-04-16 23:01:56 · 248 阅读 · 0 评论 -
DSL搜索 - 布尔查询
目录为指定词语加权可以组合多重查询must:查询必须匹配搜索条件,譬如 andshould:查询匹配满足1个以上条件,譬如 ormust_not:不匹配搜索条件,一个都不要满足实操1:POST /shop/_doc/_search{ "query": { "bool": { "must": [ ...原创 2020-04-16 22:59:21 · 217 阅读 · 0 评论 -
DSL搜索 - multi_match/boost
目录multi_matchboostmulti_match满足使用match在多个字段中进行查询的需求POST /shop/_doc/_search{ "query": { "multi_match": { "query": "皮特帕克慕课网", "fields": ["desc", "nick...原创 2020-04-16 22:55:10 · 244 阅读 · 0 评论 -
DSL搜索 - match_phrase
目录match_phrase 短语匹配match_phrase 短语匹配match:分词后只要有匹配就返回,match_phrase:分词结果必须在text字段分词中都包含,而且顺序必须相同,而且必须都是连续的。(搜索比较严格)slop:允许词语间跳过的数量POST /shop/_doc/_search{ "query": { "match_phrase"...原创 2020-04-16 22:53:24 · 397 阅读 · 0 评论 -
DSL搜索 - term/match
目录term精确搜索与match分词搜索terms 多个词语匹配检索term精确搜索与match分词搜索搜索的时候会把用户搜索内容,比如“慕课网强大”作为一整个关键词去搜索,而不会对其进行分词后再搜索POST /shop/_doc/_search{ "query": { "term": { "desc": "慕课网" ...原创 2020-04-16 22:51:13 · 200 阅读 · 0 评论 -
DSL搜索 - 查询所有与分页
目录match_all分页查询match_all在索引中查询所有的文档GET /shop/_doc/_search或POST /shop/_doc/_search{ "query": { "match_all": {} }, "_source": ["id", "nickname", "age"]}Head 可视化操作...原创 2020-04-16 22:48:13 · 691 阅读 · 0 评论 -
DSL搜索 - 入门语法
目录请求参数的查询(QueryString)DSL基本语法搜索不合法问题定位请求参数的查询(QueryString)查询[字段]包含[内容]的文档GET /shop/_doc/_search?q=desc:慕课网GET /shop/_doc/_search?q=nickname:慕&q=age:25text与keyword搜索对比测试(keyword不会被倒排索...原创 2020-04-16 22:45:04 · 368 阅读 · 0 评论 -
ES自定义中文词库
目录在{es}/plugins/ik/config下,创建:并且添加内容配置自定义扩展词典重启在{es}/plugins/ik/config下,创建:vim custom.dic并且添加内容淘宝网骚年配置自定义扩展词典<entry key="ext_dict">custom.dic</entry>重启...原创 2020-04-15 23:39:36 · 1079 阅读 · 0 评论 -
ES建立IK中文分词器
目录IK中文分词器测试中文分词效果IK中文分词器Github:https://github.com/medcl/elasticsearch-analysis-ikzip解压: unzip xxx.zip -d ik测试中文分词效果POST /_analyze{ "analyzer": "ik_max_word", "text": "上下班车流量很大"}...原创 2020-04-15 23:37:40 · 163 阅读 · 0 评论 -
ES分词与内置分词器
目录什么是分词es内置分词器什么是分词把文本转换为一个个的单词,分词称之为analysis。es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体。英文分词:I study in .com中文分词:我在学习POST /_analyze{ "analyzer": "standard", "text": "text文本"}POST /my_doc/...原创 2020-04-15 23:35:38 · 511 阅读 · 0 评论 -
ES文档乐观锁控制 if_seq_no与if_primary_term
目录观察操作版本元数据观察操作插入新数据POST /my_doc/_doc{ "id": 1010, "name": "imooc-1010", "desc": "imoocimooc!", "create_date": "2019-12-24"}# 此时 _version 为 1修改数据POST /my_doc/_doc/{_id}/_up...原创 2020-04-15 23:31:41 · 1618 阅读 · 0 评论 -
ES文档的基本操作 - 查询
目录查询文档查询结果元数据定制结果集判断文档是否存在查询文档常规查询GET /index_demo/_doc/1GET /index_demo/_doc/_search查询结果{ "_index": "my_doc", "_type": "_doc", "_id": "2", "_score": 1.0, "_version": 9, ...原创 2020-04-15 23:26:46 · 1690 阅读 · 0 评论 -
ES文档的基本操作 - 删除与修改
这里写目录标题删除文档修改文档删除文档DELETE /my_doc/_doc/1注:文档删除不是立即删除,文档还是保存在磁盘上,索引增长越来越多,才会把那些曾经标识过删除的,进行清理,从磁盘上移出去。修改文档局部:POST /my_doc/_doc/1/_update{ "doc": { "name": "慕课" }}全量替换PUT /my_...原创 2020-04-15 23:23:12 · 1242 阅读 · 1 评论 -
ES文档的基本操作 - 添加
目录添加文档数据添加文档数据POST /my_doc/_doc/1 -> {索引名}/_doc/{索引ID}(是指索引在es中的id,而不是这条记录的id,比如记录的id从数据库来是1001,并不是这个。如果不写,则自动生成一个字符串。建议和数据id保持一致> ){ "id": 1001, "name": "imooc-1", "...原创 2020-04-15 23:19:22 · 3971 阅读 · 0 评论 -
ES索引的mappings映射
indexThe index option controls whether field values are indexed. It accepts true or false and defaults to true. Fields that are not indexed are not queryable.原创 2020-04-15 23:15:59 · 1129 阅读 · 1 评论 -
ES索引的一些操作
目录集群健康创建索引查看索引删除索引以下操作都是基于Restfull API来操作集群健康GET /_cluster/health创建索引PUT /index_test{ "settings": { "index": { "number_of_shards": "2", "number_of_re...原创 2020-04-15 23:09:19 · 131 阅读 · 0 评论 -
Elasticsearch 核心术语
目录核心概念集群相关简称核心概念ES -> 数据库索引index -> 表文档 document -> 行(记录)字段 fields -> 列stu_index{ id: 1001, name: jason, age: 19},{ id: 1002, name: tom, age: 18},{ id: 1003, name: rose,...原创 2020-03-26 21:42:16 · 164 阅读 · 0 评论 -
安装Elasticsearch
目录上传后解压ES 目录介绍修改核心配置文件 elasticearch.yml修改JVM参数添加用户启动ES测试停止es端口号意义附上传后解压移动解压后的es文件夹:ES 目录介绍• bin:可执行文件在里面,运行es的命令就在这个里面,包含了一些脚本文件等• config:配置文件目录• JDK:java环境• lib:依赖的jar,类库• logs:日志文件• modul...原创 2020-03-26 21:32:39 · 210 阅读 · 0 评论