本文内容 Elasticsearch logstash Kibana 参考资料 本文介绍安装 logstash 2.2.0 和 elasticsearch 2.2.0,操作系统环境版本是 CentOS/Linux 2.6.32-504.23.4.el6.x86_64. 安装 JDK 是必须的,一般操作系统都会有,只是版本的问题,后面会提到. 而 Kibana 只是一个用纯 JavaScript 写的前端 UI.一定要注意 Kibana 的版本,它会要求 ES 的版本.比如 Kibana 3 要求…
ES Head is not working with elasticsearch-1.4.0.Beta1: https://github.com/elastic/elasticsearch/issues/7151…
写在前边 搞了两三天了,一直有个问题困扰着我,ES集群中配置怎么能正确映射到主机上,这边经常报ClusterFormationFailureHelper master not discovered or elected yet.原因是容器中的ES节点没有正确的映射到主机上,而且容器内ip是易变的,我该怎么配置呢? 临下班了,终于想到个法子,固定容器ip--使用network_mode: host 看到主机模式的我眼前一亮,容器就相当于一个主机服务,你占哪个端口就是哪个,没有必要再去自己指定por…
elasticsearch 5.0以下的版本要用到权限控制的话需要使用shield.下载地址: https://www.elastic.co/downloads/shield5.0以上的版本则可以使用X-Pack,shield现在只是x-pack的一部分.x-pack包含了Shield, Watcher, Marvel, Graph, reporting.下载地址:https://www.elastic.co/downloads/x-pack elasticsearch shield安装和配置e…
Linux下,非Docker启动Elasticsearch 6.3.0 查看java版本,需要1.8版本 java -version yum -y install java 创建用户,因为elasticsearch不能root操作 useradd panfeng 设置密码 passwd panfeng 输入123456,上面说无效小于8字符,又让输入一次,再输入123456 切换用户,带有-参数是把当前环境也切换过去 su - panfeng 这时候用ftp把elasticsearch-6.3.…
Springboot整合最新版elasticSearch参考之前的文章:SpingBoot:整合ElasticSearch 7.2.0 Search API SearchRequest用于与搜索文档,聚合,建议有关的任何操作,还提供了在结果文档上请求突出显示的方法. 在最基本的形式中,我们可以向请求添加查询: searchRequest = indexName==null?new SearchRequest():new SearchRequest(indexName);//创建SeachRequ…
官方文档地址 https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 1.0.0 设置Elasticsearch 1.1.0 安装Elasticsearch 1.1.1 Linux安装Elasticsearch Linux下,非Docker启动Elasticsearch 6.3.0,安装ik分词器插件,以及使用Kibana测试Elasticsearch 1.1.2 Docker安装Elasticsear…
当服务器上 es安装好后,第一步就是数据的增删改查. 有一些概念: 索引:  索引是集群用来存放数据的地方,可以理解为一个数据库. index_type:索引类型,数据在索引中按照type存放.可以理解为数据库中的表. document: es 中存放数据的最小单位,相当于数据库表中每一行的数据.  后面结合java 代码实现es 搜索,操作的结果就是document. 具体操作的语句: 参考官网:https://www.elastic.co/guide/en/elasticsearch/ref…
前面几课我们已经把ES的基本概念和查询了解了,大家知道ES的核心优势就是天生支持分布式,所以,这课我们专门讲讲怎么搭建实现ES的集群部署. ES分布式原理 1.es分布式概念 主分片(Primary shard) 索引的子集,索引可以切分成多个分片,分布到不同的集群节点上.分片对应的是 Lucene 中的索引.默认是根据id进行hash分片的.副本分片(Replica shard)每个主分片可以有一个或者多个副本.Mapping 相当于数据库中的schema,用来约束字段的类型,不过 Elast…
目录 一.导读 二.彩蛋福利:账号借用 三.ES的Index.Shard及扩容机制 四.ES支持的核心数据类型 4.1.数字类型 4.2.日期类型 4.3.boolean类型 4.4.二进制类型 4.5.范围 4.6.复杂数据类型 4.7.Geo-type 五.精确匹配与全文检索 5.1.精确匹配:exact value 5.2.全文检索:full text 六.倒排索引 & 正排索引 6.1.倒排索引 inverted index 6.2.正排索引 doc value 6.3.禁用doc va…
1:一条数据是如何落地到对应的shard上的 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了.实际上,这个过程是根据下面这个算法决定的: shard = hash(routing) % number_of_primary_shards routing 是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值. routing 通过 hash…
前面两课我们了解了ES的基本概念并且学会了安装ES,这节课我们就来讲讲ES基本的增删改查:ES主要对外界提供的是REST风格的API,我们通过客户端操作ES本质上就是API的调用.在第一课我们就讲了索引.类型和文档的含义,它们分别对应MYSQL的数据库.表和一行数据.所以,我们在讲ES的API时,大家可以按照MYSQL的SQL语句对应做理解. ES Restful API GET.POST.PUT.DELETE.HEAD含义(这几个是API的基本概念): 1)GET:获取请求对象的当前状态. 2…
1.  ElasticSearch的评分 在用ElasticSearch作为搜索引擎的时候,如果采用关键字进行查询,ElasticSearch会对每个符合查询条件的文档进行评分,在5.3.0的版本中,默认采用的是BM25的评分函数,关于BM25的评分函数,网络上有较多的讲解,这里就不进行详细说明,贴上几个连接如下: http://luokr.com/p/7 https://en.wikipedia.org/wiki/Okapi_BM25 https://www.elastic.co/guide/…
首先下载需要引入的类库 链接:https://pan.baidu.com/s/1XEXviLoWM-ypwJ_B0jXqlg 密码:u54t //Elasticsearch.zip类库压缩包地址 然后将压缩包解压到vendor目录下 <?php namespace app\index\controller; use think\Controller; class Ec extends Controller { public function _initialize() { Vendor('Ela…
温馨提示:电脑端看不到右侧目录的话请减小缩放比例. API操作-- 新建或删除查询索引库 新建索引库 新建index,要向服务器发送一个PUT请求,下面是使用curl命令新建了一个名为test的index的例子 curl -XPUT 'localhost:9200/test' Response: { "acknowledged": true, "shards_acknowledged": true, "index": "test&quo…
首先从官网下载安装包,是个压缩文件,然后解压 在es目录下找到es的配置文件 修改集群(cluster)名称 PS:一般情况下一台机只部署一个es程序,也就是一个集群,默认集群名是ewater_main,如果有第二个或以下集群名就叫ewater_xxx 让es可以远程访问 编辑es配置文件,找到network.host,把ip设置为0.0.0.0 再找到es运行文件,双击运行 如无意外,即可正常运行 最后,验证是否安装成功,在浏览器访问http://localhost:9200/,看到如下内容即…
PUT chuyuan/_doc/ { "name":"xiaolin", , "sex":"F", "love":["music"], "about":"i love ES" } GET chuyuan/_doc/ GET chuyuan/_doc/?_source=age,love //过滤查询age和love的数据 2.修改字段数据:一是通过…
请关注inline参数的变化 正确: POST /test/type1/1/_update{ "script" : { "inline": "ctx._source.tags.contains(tag)?ctx.op =\"delete\":(ctx.op =\"none\")", "params" : { "tag" : "blue" } }}…
最常用的两个输出插件: redis es 一.redis 1.用法 output { redis{ batch => false batch_events => 50 batch_timeout => 5 codec => plain congestion_interval => 1 congestion_threshold => 0 data_type => list db => 0 host => ["127.0.0.1:6379&quo…
1. Elasticsearch Updates 1.1 公布了Kibana 4 Beta 1 和Beta 1.1 Kibana 4不管是在界面的布局,使用配置方法,还是底层绘制图表的方式都与Kibana不同. 在Kibana 3的基础上吸取了众多社区的功能需求后.Kibana自Kibana 2 大改造成Kibana 3 后第二次做出了重大改变.Kibana真是一直致力于帮助用户解决他们在数据可视化上的棘手问题. 界面由原来的一个`Dashboard`.改为如今的`Discover`, `Vis…
前言 加入新公司的第二个星期的星期二 遇到另一个项目需要技术性支持:验证es多集群的数据备份方案,需要我参与验证,在这个项目中需要关注到两个集群的互通性.es集群是部署在不同的k8s环境中,K8s环境未必可以互相通信.在这个过程中也遇到很多问题,关关难过关关过. 因为是新入职的公司的第一个完成的任务,特记录如下 环境 k8s版本:1.18.3 es版本:7.8 logstash版本:7.8 ceph: s3 验证方案 -方案1 : logstash 方案2: ceph s3 s3 操作:http…
ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city": { "terms": { "field": "departureCitys" //字段 } } } } 父子结构的索引的聚合 POST product/_search { "size": 0, "aggs&quo…
短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_search { "query": { "match_phrase": { "title": "quick brown fox" } } } //查询分词之后连续的 //例如 brown fox 可以查询到,但是quick fox 查询…
分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 一个集群拥有相同的cluster.name 配置的节点组成, 它们共同承担数据和负载的压力 主节点负责管理集群的变更例如增加.删除索引,或者增加.删除节点等. 而主节点并不需要涉及到文档级别的变更和搜索等操作 集群健康 1.GET /_cluster/health 返回值中的status 是我们关注…
高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "size": 200, "query": { "match_phrase": { "name": "上海" } }, "highlight": { "fields": { "…
ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排序的,而且进行了双字段的排序.当productid 相同时的文档是根据下面的那个排序字段进行的排序 POST /product/_search { "query": { "bool": { "filter": { "term":…
目录 1 Search API的基本用法 1.1 查询所有数据 1.2 响应信息说明 1.3 timeout超时机制 1.4 查询多索引和多类型中的数据 2 URI Search的用法 2.1 GET请求携带参数查询 2.2 URI Search的参数列表 2.3 URI Search用法示例 2.4 不指定field时的搜索原理 1 Search API的基本用法 1.1 查询所有数据 GET _search 1.2 响应信息说明 { "took" : 346, // 整个检索消耗的…
目录 1 创建document 1.1 创建时手动指定id 1.2 创建时自动生成id 2 查看document 2.1 根据id查询文档 2.2 通过_source字段控制查询结果 3 修改document 3.1 全量替换document 3.2 强制创建document 4 删除document 说在前面: 本文的所有演示, 都是基于Elasticsearch 6.6.10进行的, 不同的版本可能存在API发生修改.不支持的情况, 还请注意. 1 创建document 1.1 创建时手动指…
目录 1 核心数据类型 1.1 字符串类型 - string(不再支持) 1.1.1 文本类型 - text 1.1.2 关键字类型 - keyword 1.2 数字类型 - 8种 1.3 日期类型 - date 1.4 布尔类型 - boolean 1.5 二进制型 - binary 1.6 范围类型 - range 2 复杂数据类型 2.1 数组类型 - array 2.2 对象类型 - object 2.3 嵌套类型 - nested 2.3.1 对象数组是如何存储的 2.3.2 用nes…
目录 1 映射的相关概念 1.1 什么是映射 1.2 映射的组成 1.3 元字段 1.4 字段的类型 2 如何配置mapping 2.1 创建mapping 2.2 更新mapping 2.3 查看mapping 1 映射的相关概念 1.1 什么是映射 (1) 映射(mapping): 定义index的元数据, 指定要索引并存储的文档的字段类型. 也就是说映射决定了Elasticsearch在建立倒排索引.进行检索时对文档采取的相关策略, 如数字类型.日期类型.文本类型等等. 需要注意的是: 检…