
ElasticSearch
文章平均质量分 68
ElasticSearch
程序员劝退师-TAO
没事敲两行代码
展开
-
ElasticSearch面试题
1.为什么要使用ElasticSearch系统中的数据,随着业务的发展,时间的推移,将会非常多,而业务中往往采用模糊查询进行数据的搜索,而模糊查询会导致查询引擎放弃索引,导致系统查询数据时都是全表扫描,在百万级别的数据库中,查询效率是非常低下的,而我们使用Es做一个全文索引,将经常查询的系统功能的某些字段,比如说电商系统的商品表中商品名,描述、价格还有id这些字段我们放入ES索引库里,可以提高查询速度。2.ElasticSearch的Master选举流程Elasticsearch的选主是ZenDis原创 2021-08-28 23:58:42 · 265 阅读 · 0 评论 -
ELasticSearch优化
硬件优化Elasticsearch的基础是Lucene,所有的素引和文档数据是存储在本地的磁盘中,具体的路径可在ES的配置文件./config/elasticsearch.yml中配置,如下:磁盘在现代服务器上通常都是瓶颈。Elasticsearch 重度使用磁盘,你的磁盘能处理的吞吐量越大,你的节点就越稳定。这里有一些优化磁盘I/O的技巧:使用RAID 0。条带化RAID会提高磁盘I/O,代价显然就是当一块硬盡故障时整个就故障了。不要使用镜像或者奇偶校验RAID因为副本已经提供了这个功能。·使原创 2021-08-28 20:53:59 · 267 阅读 · 0 评论 -
SpringBoot整合ElasticSearch-SpringData
前言之前写过一篇SpringBoot整合ElasticSearch是使用的elasticsearch-rest-high-level-client,这篇文章使用Spring-Data来操作ElasticSearch。关于ElasticSearch的搭建我这里都不想提了,往期文章都有,各种版本的!前置环境POM <parent> <groupId>org.springframework.boot</groupId> <artif原创 2021-08-28 20:12:51 · 337 阅读 · 0 评论 -
ElasticSearch集群数据读写流程
前言本章作为ElasticSearch分布式集群的附属章节,主要讲解ElasticSearch集群环境下数据是如何读写的,既然讲到读写,那么ElasticSearch的更新就是基于二者的结合,顺带也讲一下!ElasticSearch集群数据写流程ElasticSearch集群的数据写流程大致如这样:假设客户端现在要发一条数据,这时客户端并不知道具体要连接到那台机器上的,客户端是先到达集群,然后通过路由计算得到具体要连接的ElasticSearch,(其实我们连接的时候可能连接的是Node-2,但是通过原创 2021-08-28 00:46:49 · 853 阅读 · 0 评论 -
Linux搭建ElasticSearch集群
前言这是整个ElasticSearch搭建的最后一篇文章,其实对我而言ElasticSearch在Linux上搭建集群写这篇文章意义并不大,只是为了补充这个空白而已,所以这篇文章并不会讲解很详细!前置可以先看看Linux安装ElasticSearch,Windows搭建ElasticSearch集群这两篇文章,先将这个搞定,在来搞集群!这篇文章只介绍重点!搭建用户创建按照Linux搭建ElasticSearch这篇文章中的创建即可目录权限修改将Linux搭建ElasticSearch这篇文章的E原创 2021-08-27 00:57:55 · 334 阅读 · 2 评论 -
Linux安装ElasticSearch
前言之前玩的ElasticSearch都是基于Docker构建的,基本上配置好Java环境就好了,这里还缺Linux使用程序包搭建ElasticSearch,那么这篇文章就来补充这个空档吧!1.下载ElasticSearch官网下载地址2.上传解压3.赋予权限1.创建角色//创建角色adduser es//设置密码(这里长度最好大于8位)passwd 000000002.修改Linux安全策略limits.confvi /etc/security/limits.confe原创 2021-08-27 00:29:19 · 524 阅读 · 0 评论 -
ElasticSearch集群系统架构
前言全面几篇文章主要是使用单机跑ElasticSearch的,在生产环境为了保证高可用和高吞吐量我们都会采用集群的方式部署。那么本章不涉及ElasticSearch集群的搭建,只涉及理论部分!集群架构上图中ElasticSearch集群中有多个节点,其中我们会从多个节点中选取一个Master,Master就是来管理整个ElasticSearch集群的,当我们只有一个节点时,那么我们的数据就都会放到那一个节点中去,如果我们增加新的节点,那么数据该往哪放,那么这就是由Master进行调度,所以整个集群是原创 2021-08-24 00:34:56 · 938 阅读 · 0 评论 -
Windows搭建ElasticSearch集群
前言在搭建ElasticSearch集群前,可以先看看往期文章Windows安装ElasticSearch,可以使用上篇文章中下载ElasticSearch搭建准备将下载好的ElasticSearch复制三分,node1为主,node2、node3为从启动主节点配置node1\config下的elasticsearch.yml#集群名称cluster.name: my-application#节点名称node.name: node-1#当前节点为masternode.master:原创 2021-08-23 23:03:11 · 876 阅读 · 4 评论 -
Windows安装ElasticSearch
前言习惯使用docker安装各种中间件了,但是程序包安装方式也不能丢呀。官网下载地址,我这里使用的是7.4.2,如果需要使用其他版本,更改连接后面的版本号即可!下载下载速度还是可观的!安装在不做任何配置的情况下也是可以默认启动的!访问测试对比下使用Docker安装,在Windows上安装真是简单呀。...原创 2021-08-23 22:04:06 · 191 阅读 · 0 评论 -
ElasticSearch集群概念
单机存在的问题单台Elasticsearch服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。除了负载能力,单点服务器也存在其他问题:单台机器存储容量有限单服务器容易出现单点故障,无法实现高可用单服务的并发处理能力有限配置服务器集群时,集群中节点数量没有限制,大于等于2个节点就可以看做是集群了。一般出于高性能及高可用方面来考虑集群中节点数量都是3个以上。集群Cluster一个集群就是由一个或多个服务器节点原创 2021-08-22 23:42:55 · 216 阅读 · 0 评论 -
SpringBoot使用elasticsearch-rest-high-level-client操作ElasticSearch
前言老早之前写过一篇SpringBoot操作ElasticSearch的文章,但是内容过于简单,只是简单交代了下,为了更好的学习ElasticSearch这个搜索引擎,那么在更一篇贴,本文中使用的ElasticSearch为7.4.2,注意哦!那么elasticsearch-rest-high-level-client使用的也是同样的版本!这篇文章可以理解为是SpringBoot整合Elasticsearch的续集,可以先照着上文先把之前的代码准备下!索引操作创建索引 @Test vo原创 2021-08-22 23:36:13 · 4674 阅读 · 3 评论 -
PostMan使用REST Full操作ElasticSearch
前言往期文章有写过Kibana、elasticsearch-head操作ElasticSearch,我们知道ElasticSearch是支持REST Full的,那么同理我们可以使用PostMan发送REST Full请求来操作ElasticSearch。关于PostMan的安装这里我就不逼逼了,这里值得注意的是PostMan这个软件,前两天既然以50多亿美元被收购了。牛逼!索引操作我们知道PUT操作具有幂等性,如果再次请求的话那么就会有问题!ElasticSearch中已经存在这个索引了,再次原创 2021-08-22 20:32:47 · 512 阅读 · 0 评论 -
ElasticSearch基本介绍
索引关于索引这玩意在MySQL中有详细的介绍,这里都是差不多的概念,可以简单看看MySQL高新能索引,索引又分为正向索引和方向索引,通常MySQL就是正向索引的典型案例!正向索引以数据记录的id,或者name作为搜索条件,通过匹配id或者那么列得到全部记录的操作称为正向索引,这种组织方式在建立索引结构比较简单,易于维护,但是在大文本检索的时候效率太低,所以这就诞生了反向索引的概念!反向索引反向索引,一般也被称为倒排索引倒排索引以字或者关键字进行索引,表中关键字对应的记录表项记录了出现这个字或者原创 2021-08-22 17:22:36 · 969 阅读 · 0 评论 -
ElasticSearch倒排索引
倒排索引的组成倒排索引主要是由单词词典和倒排列表组成!单词词典倒排索引的重要组成,记录所有文档的单词,一般比较大,记录单词到倒排列表的关联信息单词词典一般使用B+树,存储在内存中倒排列表倒排列表记录了出现过某个单词的所有文档的文档列表及单词在该文档中出现的位置信息,以及频率(作为命中得分信息),每条记录称为一个倒排先倒排列表存储在磁盘文件中,主要包含文档ID,单词频率,位置,偏移...原创 2021-08-22 17:04:18 · 151 阅读 · 0 评论 -
ElasticSearch进阶
https://tech.youzan.com/search-tech-2/https://tech.youzan.com/search-tech-1/https://www.shenyanchao.cn/blog/2018/12/04/lucene-index-files/https://cloud.tencent.com/developer/article/1357698https://mp.weixin.qq.com/s/j3bvSBeNLBsRENmKxkY5Uw原创 2021-08-19 16:22:20 · 239 阅读 · 0 评论 -
Elasticsearch语法详情
基础CURD查询//查询id为1的数据GET /product/_doc/1//带其他条件查询-模糊查询,并且是满足其中一个即可GET product/_search?q=name:TAO2GET product/_search?q=name:TAO2&q=sgin:111//查询所有GET /product/_search添加如果已经存在 那么就会覆盖//PUT 添加操作需要制定idPUT /product/_doc/1{ "name":"TAO"}//原创 2020-07-23 18:23:47 · 2113 阅读 · 0 评论 -
Elasticsearch数据可视化工具elasticsearch-head安装
Elasticsearch默认安装是没有可视化工具的,这一点和sorl不一样,Elasticsearch更把重心放在搜索上面,至于其他的,交给三方插件!Elasticsearch-head是一个查看Elasticsearch的开源工具,源码下载地址Elasticsearch-head这里注意: Elasticsearch-head源码运行起来需要下载一些依赖,所以还需要Node环境,这个环境网上一大堆,配置好即可!1.源码解压我这是Win环境!按住Shift右击空白2.安装需要的依赖np原创 2020-07-21 13:00:48 · 363 阅读 · 0 评论 -
kibana连接ES显示Cannot connect to the Elasticsearch clusterSee the Kibana logs for details and try reloa
首先你能看到我这篇文章,而且报错描述也一样,那么恭喜你就能解决这个问题!!!是不是和你的一样!!!在确认一下Kibana的日志信息!!!{"type":"log","@timestamp":"2020-07-14T12:37:18Z","tags":["status","plugin:[email protected]","info"],"pid":6,"state":"green","message":"Status changed from yellow to green - Ready","prevS原创 2020-07-14 21:19:29 · 9895 阅读 · 18 评论 -
Found interface org.elasticsearch.common.bytes.BytesReference, but class was expected
这是由于elasticsearch的版本不对导致的,在SpringBoot项目中导入的Maven明明是对应的版本,但是插入数据就报错!!!查看Maven的dependencies发现确实存在版本对应不上的问题这是由于SpringBoot的parent管理影响的解决方案 <properties> <java.version>1.8</java.version> <elasticsearch.version>7.4.2原创 2020-07-11 17:12:33 · 3162 阅读 · 0 评论 -
Kibana操作Elasticsearch-IK分词器自定义词库
1.准备一台nginx,这个是用来存放分词文件的,然后在nginx中创建fenci.txt文件2.访问测试fenci.txt乱码不用管3.配置ik分词器的远程词库地址进入ik的plugins宿主机目录/data/es/plugins/ik-7.4.2/configvi编辑IKAnalyzer.cfg.xml文件4.配置远程词库地址保存后存起ES...原创 2020-07-11 14:41:24 · 952 阅读 · 0 评论 -
Kibana操作Elasticsearch-分词器操作
分词分词是ES的全文检索的核心一个tokenizer (分词器)接收一个字符流,将之分割为独立的tokens (词元,通常是独立的单词) ,然后输出tokens流。例如, whitespace tokenizer遇到空白字符时分割文本。它会将文本"Quick brown fox!"分割AAN为[Quick, brown, fox!]tokenizer (分词器)还负责记录各个term (词条)的顺序或position位置(用于phrase短语和word proximity词近邻查询) ,以及ter原创 2020-07-11 13:37:01 · 4297 阅读 · 0 评论 -
Kibana操作Elasticsearch-Mapping映射操作
Mapping关系型数据库中两个数据表示是独立的,即使他们里面有相同名称的列也不影响使用,但ES中不是这样的。elasticsearch是基于Lucene开发的搜索引擎,而ES中不同type下名称相同的filed最终在Lucene中的处理方式是一样的。• 两个不同type下的两个user_name,在ES同一个索引下其实被认为是同一个filed,你必须在两个不同的type中定义相同的filed映射。否则,不同type中的相同字段名称就会在处理中出现冲突的情况,导致Lucene处理效率下降。•原创 2020-07-11 11:13:35 · 6798 阅读 · 0 评论 -
Kibana操作Elasticsearch-Aggregations聚合数据分析
这篇文章呢,主要演示Kibana操作Elasticsearch做数据分析聚合 Aggregations聚合提供了从数据中分组和提取数据的能力。最简单的聚合方法大致等于SQL GROUPBY和SQL聚合函数。在Elasticsearch中,您有执行搜索返回hits (命中结果) ,并且同时返回聚合结果,把一个响应中的所有hits (命中结果)分隔开的能力。这是非常强大且有效的,您可以执行查询和多个聚合,并且在一次使用中得到各自的(任何一个的)返回结果,使用一次简洁和简化的API来避免网络往返。基本操作原创 2020-07-10 22:43:57 · 2884 阅读 · 2 评论 -
Kibana操作Elasticsearch-检索
1.导入ES官方检索测试数据本次使用kibana操作ES以这些数据为基础ES在GitHub的地址这段数据存在这个目录下将这2000行json复制出来2.使用Kibana将2000行数据导入到ES中POST /bank/account/_bulk3.根据ES官方文档对数据检索ES官网进入文档–>选择其他版本进入对应版本进入这个页面有点慢脚本文件还没加载完,加载完了的界面是这样的点击+好展开进入检索文档这里我的步骤做的这么详细是不是因为CSDN资源服不要原创 2020-07-09 23:32:41 · 3591 阅读 · 2 评论 -
Kibana(Win/Linux)连接远程Elasticsearch
这篇文章演示Window/Linux安装Kibana环境准备1.Win环境2.Linux环境3.ES一台前言注意:这里不管是Linux还是Win环境下使用Kibana,这个Kibana的版本必须和ES的版本一致查看ES版本Kibana和ES版本不一致启动报错Win启动Kibana1.下载程序包官网地址2.查询对应的ES版本这个下载速度有点慢!!!这里提供一种方法下载速度会快很多!!!复制这个下载地址(我这是谷歌浏览器)使用迅雷下载3.解压(这个最好不要放在中文目原创 2020-07-09 12:08:48 · 12544 阅读 · 1 评论