elasticsearch
ZhaoYingChao88
学而不思则罔,思而不学则殆!
展开
-
Elasticsearch常用操作命令——增删改查、集群维护、数据备份
elasticsearch 根据id删除允许从基于其id的特定索引中删除一个JSON文档,下面的示例从twitter中删除类型为_doc的JSON文档,其id为1:DELETE /index/_doc/1上述删除操作的结果为:{ "_shards" : { "total" : 2, "failed" : 0, "su...原创 2019-10-10 17:01:42 · 2460 阅读 · 1 评论 -
elasticsearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解
一、快速入门1.查看集群的健康状况http://localhost:9200/_cathttp://localhost:9200/_cat/health?v说明:v是用来要求在结果中返回表头状态值说明Green- everything is good (cluster is fully functional),即最佳状态Yellow- all data i...原创 2019-06-11 20:23:50 · 30700 阅读 · 2 评论 -
【推荐】开源项目ElasticAmbari助力 ElasticSearch、Kibana、ambari服务高效运维管理
概述ElasticAmbari为Ambari的一组自定义服务,为Elastic的产品提供安装和管理的支持。项目地址:https://github.com/ChengYingOpenSource/ElasticAmbari开源不易,我们会持续维护和优化,惊喜不断请大家点赞收藏!特性支持Elastic全产品系列 支持Elastic各产品的各个版本,不要求特定版本许可证ElasticAmbari代码库基于Apache License 2.0许可证开放使用。欢迎参与.原创 2020-12-31 13:59:26 · 2914 阅读 · 1 评论 -
Elasticsearch Bucket Aggregations示例
Terms Aggregation先看看官方给出的例子。GET /_search{ "aggs" : { "genres" : { "terms" : { "field" : "genre" } } }}响应结果:{ ... "aggregations" : { "ge...原创 2020-02-13 17:05:20 · 1762 阅读 · 1 评论 -
ElasticSearch Aggregations使用总结详解
1.单字段情况下聚合假设只需要对一个字段聚合,比如b字段,b字段是keyword类型,需要考虑的情况最为简单,当要对b字段聚合时语句很好写,如下即可{ "from": 0, "size": 0, "query": { "bool": { "must": [{ "bool": { ...原创 2020-02-13 11:39:46 · 14486 阅读 · 0 评论 -
es 实现字段之间进行比对
sql 例如:select * from user t where t.count = t.num;es 查询语句如下:{ "query": { "bool": { "must": { "script": { "script": { "source": "doc['fieldA'].value >...原创 2019-12-18 21:49:33 · 7067 阅读 · 0 评论 -
ES 分组排序java实现
多字段分组并求和;实现sql:select field1, field2, sum(field3) from table_name group by field1, field2;多字段分组并求和;实现sql:select field1, field2, top(field3) from table_name group by field1, field2;ES java 样例:/...原创 2019-05-10 09:56:23 · 4185 阅读 · 0 评论 -
Elasticsearch 6.X xpack安装使用详解(试用)
前提准备安装kibana-6.7.0: 《Elasticsearch-6.7.0系列(三)5601端口 kibana——ES的UI界面》升级前ES的license升级之前访问:http://192.168.10.110:9200/_xpack 其中security一项内容如下:security description "Security for the ...原创 2019-07-26 20:22:39 · 11158 阅读 · 1 评论 -
elasticsearch最全详细使用教程:搜索详解
一、搜索API1. 搜索API 端点地址从索引tweet里面搜索字段user为kimchy的记录GET /twitter/_search?q=user:kimchy从索引tweet,user里面搜索字段user为kimchy的记录GET /twitter/tweet,user/_search?q=user:kimchyGET /kimchy,elasticsearc...原创 2019-06-11 21:37:32 · 14960 阅读 · 0 评论 -
Elasticsearch 6 Mapping设置
Mapping类似于数据库中的表结构定义,主要作用如下:定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型、布尔型等 定义倒排索引的相关配置,比如是否索引、记录postion等需要注意的是,在索引中定义太多字段可能会导致索引膨胀,出现内存不足和难以恢复的情况,下面有几个设置:index.mapping.total_fields.limit:一个索...原创 2019-03-11 19:34:17 · 2821 阅读 · 0 评论 -
Elasitcsearch High Level Rest Client使用示例
一、ES Client 简介1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接方式是RESTful风格的,使用http的方式进行连接3.2 Transport 连接 端口 9300 ...原创 2019-02-12 17:06:12 · 6409 阅读 · 0 评论 -
图解 Elasticsearch
内容 图解ElasticSearch 图解Lucene 搜索发生时 缓存的故事 在Shard中搜索 如何Scale 一个真实的请求 参考 摘要先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我的搜索 *foo-b...原创 2018-12-27 20:48:16 · 464 阅读 · 0 评论 -
elasticsearch集群管理指南
一、集群规划搭建一个集群我们需要考虑如下几个问题:1. 我们需要多大规模的集群?2. 集群中的节点角色如何分配?3. 如何避免脑裂问题?4. 索引应该设置多少个分片?5. 分片应该设置几个副本?下面我们就来分析和回答这几个问题1、我们需要多大规模的集群?需要从以下两个方面考虑:1.1 当前的数据量有多大?数据增长情况如何?1.2 你的机器配置如何?cpu、...转载 2018-11-01 21:00:20 · 483 阅读 · 0 评论 -
ElasticSearch最全分词器比较及使用方法
介绍:ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。Elasticsearch中,内置了很多分词器(a...原创 2018-11-01 15:00:05 · 35958 阅读 · 6 评论 -
IK Analyzer ES使用
https://github.com/medcl/elasticsearch-analysis-ikAnalyzer: ik_smart , ik_max_word , Tokenizer: ik_smart , ik_max_wordIK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大...原创 2018-11-01 14:56:26 · 1225 阅读 · 0 评论 -
Elasticsearch _reindex Alias使用
ES数据库重建索引——Reindex(数据迁移)应用背景:1、当你的数据量过大,而你的索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex。2、当数据的mapping需要修改,但是大量的数据已经导入到索引中了,重新导入数据到新的索引太耗时;但是在ES中,一个字段的mapping在定义并且导入数据之后是不能再修改的,所以这种情况下...原创 2019-06-27 11:43:24 · 2408 阅读 · 1 评论 -
Elasticsearch 常见问题汇总及解决姿势(后续会持续更新)
1、集群存储资源高水位 异常Caused by: org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=cluster_block_exception, reason=blocked by: [FORBIDDEN/12/index read-only / allow delete (a...原创 2019-10-11 10:39:02 · 19656 阅读 · 2 评论 -
Elasticsearch Python脚本查询常用操作
一、ES Python脚本查询操作 http方式#!coding:utf-8import jsonimport loggingimport timeimport requestsPAGE_RESULT_SCROLL_ID = 'scroll_id'PAGE_RESULT_SCROLL_SIZE = 'scroll_size'PAGE_RESULT_TOTAL_SIZE ...原创 2019-10-09 16:44:10 · 1137 阅读 · 0 评论 -
elasticsearch Routing 路由详解
前言当索引一个文档的时候,文档会被存储到一个主分片中。那么,elasticsearch如何知道一个文档应该存放到哪个分片中呢?首先这肯定不是随机的,否则在检索文档时就不知道该从哪去寻找它了。实际上这个过程是根据下面公式决定的:shard = hash(routing) % number_of_primary_shardsrouting是一个可变值,默认是文档的_i...原创 2019-09-11 10:09:54 · 4906 阅读 · 1 评论 -
ES 分片和副本数 调整及数据写入、重建索引调优
一、调整副本数如调整副本数为0curl -XPUT 'node3:9205/test_index/_settings' -d '{ "index": { "number_of_replicas": "0" }}'返回{"acknowledged":true}二、调整索引分片索引分片数在索引创建好了之后就不能调整了,只能重建索引...原创 2019-09-06 01:21:53 · 10152 阅读 · 0 评论 -
Elasticsearch性能优化技巧
0、背景在当今世界,各行各业每天都有海量数据产生,为了从这些海量数据中获取想要的分析结果,需要对数据进行提取、转换,存储,维护,管理和分析。这已然远远超出了普通处理工具、数据库等的实现能力,只有基于的分布式架构和并行处理机制的大数据工具所才能实现这些功能。Elasticsearch是响应如前所述大多数用例的最热门的开源数据存储引擎之一。Elasticsearch是一种分布式数据存储和搜索...原创 2019-08-24 22:43:52 · 1188 阅读 · 0 评论 -
elasticsearch span 跨度查询简介
span_term查询这个查询如果单独使用,效果跟term查询差不多,但是一般还是用于其他的span查询的子查询。用法也很简单,只需要指定查询的字段即可:{ "span_term" : { "user" : "kimchy" }}另外,还可以指定查询出的分值倍数:{ "span_term" : { "user" : { "value" : "kimchy", "boo...原创 2019-08-11 17:58:39 · 2705 阅读 · 0 评论 -
Elasticsearch最常用工具清单
1、题记工欲善其事必先利其器,ELK Stack的学习和实战更是如此,特将工作中用到的“高效”工具分享给大家。希望能借助“工具”提高开发、运维效率!2、工具分类概览2.1 基础类工具1、Head插件1)功能概述:ES集群状态查看、索引数据查看、ES DSL实现(增、删、改、查操作)比较实用的地方:json串的格式化2)地址:http://mobz.github...原创 2019-08-01 20:01:51 · 1182 阅读 · 0 评论 -
es head 新增字段并赋值
//新增字段请求url:http://111.11.11.111:19200/es的index/_mapping/es的type/请求方法:put数据格式:{ "es的type": { "properties": { "字段1": { "type": "string" }, "字段2": { "type": ...原创 2019-07-05 19:46:12 · 4665 阅读 · 0 评论 -
ElasticSearch python基本操作
官方文档:https://elasticsearch-py.readthedocs.io/en/master/ 1、介绍 python提供了操作ElasticSearch 接口,因此要用python来操作ElasticSearch,首先要安装python的ElasticSearch包,用命令pip install elasticsearch安装或下载安装:https://pyp...原创 2019-07-05 19:41:24 · 4375 阅读 · 0 评论 -
ES调优经验分享
集群规划独立的master节点,不存储数据, 数量不少于2 数据节点(Data Node) 查询节点(Query Node),起到负载均衡的作用Linux系统参数配置文件句柄Linux中,每个进程默认打开的最大文件句柄数是1000,对于服务器进程来说,显然太小,通过修改/etc/security/limits.conf来增大打开最大句柄数* - nofile 65535...原创 2018-10-19 16:36:18 · 3748 阅读 · 1 评论 -
ES倒排索引与三种Cache详细介绍
网上看到的一篇文章,对Lucene的倒排索引是如何执行的,说的比较易懂,就转过来分享下。Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的b-tree索引快在哪里?到底为什么快呢?笼统的来说,b-tree索引是为写入优化...原创 2018-10-16 17:46:20 · 3876 阅读 · 2 评论 -
Elasticsearch 编译调试总结
前言想深入理解 Elasticsearch,阅读它的源码是很有必要的,一来可以了解它内部的具体实现,有助于调优,二来可以了解优秀开源项目的代码架构,提高我们的代码架构能力等阅读Elasticsearch源码的第一步是搭建调试环境,然后作者在这个过程中遇到很多麻烦,在网上找不到想要的答案,历经千辛最后一一解决,所以记录下,帮助有需要的童鞋软件环境 操作系统:win7 El...转载 2018-09-27 16:00:47 · 1682 阅读 · 2 评论 -
ES aggregation详解
aggregation分类aggregations —— 聚合,提供了一种基于查询条件来对数据进行分桶、计算的方法。有点类似于 SQL 中的 group by 再加一些函数方法的操作。聚合可以嵌套,由此可以组成复杂的操作(Bucketing聚合可以包含sub-aggregation)。聚合整体上可以分为 3 类:1. Bucketing:桶分聚合:此类聚合执行的是对文档分组的操...原创 2018-10-12 09:57:14 · 24574 阅读 · 1 评论 -
ES读写操作详解
目前的Elasticsearch有两个明显的身份,一个是分布式搜索系统,另一个是分布式NoSQL数据库,对于这两种不同的身份,读写语义基本类似,但也有一点差异。写操作 实时性: 搜索系统的Index一般都是NRT(Near Real Time),近实时的,比如Elasticsearch中,Index的实时性是由refresh控制的,默认是1s,最快可到100ms,那么也就意味着I...原创 2018-10-11 15:00:09 · 7319 阅读 · 0 评论 -
Sphinx SQL的高性能全文检索引擎详解
Sphinx是一个俄国人开发的搜索引擎:http://www.sphinxsearch.com/Sphinx建索引速度是最快的,比Lucene快9倍以上。因此,Sphinx非常适合做准实时搜索引擎。 Sphinx是一款基于SQL的高性能全文检索引擎,Sphinx的性能在众多全文检索引擎中也是数一数二的,利用Sphinx,我们可以完成比数据库本身更专业的搜索功能,而且可以有很多针对性的性能优...原创 2018-09-14 15:49:12 · 3335 阅读 · 0 评论 -
elasticsearch 常用API调用
前言本文是对 23个最有用的Elasticseaerch检索技巧 一文提到的ES检索技巧进行 Java API 的简单实现,但仅限于简单实现,并不考虑包括参数校验,异常处理,日志处理,安全等问题,仅供参考代码见 UsefullESSearchSkill ,原查询语句请对照原文运行环境JDK version : 10.0.2gradle version : 4.7Elastics...原创 2018-09-19 14:06:26 · 1993 阅读 · 0 评论 -
lucene详细介绍
1 lucene简介 1.1 什么是lucene 项目地址: https://github.com/apache/lucene-solrLucene是一个全文搜索框架,而不是应用产品。它只是提供了一种工具让你能实现这些产品。它的特点概述起来就是:全Java实现、开源、高性能、功能完整、易拓展,功能完整体现在对分词的支持、各种查询方式(前缀、模糊、正则等)、打分高亮、列式存储(Doc...原创 2018-09-17 19:41:35 · 2115 阅读 · 0 评论 -
Elasticsearch分页查询From&Size vs scroll vs search_after
背景Elasticsearch 是一个实时的分布式搜索与分析引擎,被广泛用来做全文搜索、结构化搜索、分析。在使用过程中,有一些典型的使用场景,比如分页、遍历等。在使用关系型数据库中,我们被告知要注意甚至被明确禁止使用深度分页,同理,在 Elasticsearch 中,也应该尽量避免使用深度分页。这篇文章主要介绍 Elasticsearch 中使用分页的方式、Elasticsearch 搜索执行...原创 2018-08-22 09:34:34 · 3568 阅读 · 3 评论 -
ElasticSearch常用插件整理
说明1) 素材来自互联网,针对部分插件,已通过实际操作验证,进而整理、总结形成。(感谢度娘、感谢互联网、感谢开源世界里的大牛)2) 如有谬误,请及时指出。(咸鱼翻身,Email:defineconst@163.com,会不断更新本文档)3) 联系本人获取配置好的Elasticsearch1.6.0集成安装包。4) 插件地址:h原创 2018-01-10 09:42:31 · 5071 阅读 · 0 评论 -
ElasticSearch 优化实战
二. 查询性能(Query Perofrmance)王道是什么?routing,routing,还是 routing。我们为了提高查询速度,减少慢查询,结合自己的业务实践,使用多个集群,每个集群使用不同的 routing。比如,用户是一个routing维度。在实践中,这个routing 非常重要。我们碰到一原创 2017-10-28 15:17:50 · 1078 阅读 · 0 评论 -
ElasticSearch 优化总结
ElasticSearch 优化总结目录ElasticSearch 优化总结目录OSOS 参数说明OS 参数配置ESLinux Release: CentOS release 6.4ES Version: 2.xOSOS 参数说明vm.swappiness1原创 2017-10-28 15:08:56 · 830 阅读 · 0 评论 -
Elasticsearch 启动过程详解
前言本文探究Elasticsearch 6.3.2的启动流程环境准备使用工具:IDEA,XMind关于ES调试环境的搭建,可以参考前面的文章 《教你编译调试Elasticsearch 6.3.2源码》然后通过设置断点,从 org.elasticsearch.bootstrap.ElasticSearch 的入口函数开始,一步一步调试 IDEA 2018.2 调试按钮...转载 2018-09-27 16:05:04 · 2797 阅读 · 0 评论 -
ES Field Collapsing 字段折叠使用详解
在 Elasticsearch 5.x 有一个字段折叠(Field Collapsing,#22337)的功能非常有意思,在这里分享一下, 字段折叠是一个很有历史的需求了,可以看这个 issue,编号#256,最初是2010年7月提的issue,也是讨论最多的帖子之一(240+评论),熬了6年才支持的特性,你说牛不牛,哈哈。 目测该特性将于5.3发布,尝鲜地址:Elasticsearch-...转载 2018-10-12 10:30:27 · 11330 阅读 · 4 评论 -
Elasticsearch Log GC 日志分析详解
如果你关注过 elasticsearch 的日志,可能会看到如下类似的内容:[2018-06-30T17:57:23,848][WARN ][o.e.m.j.JvmGcMonitorService] [qoo--eS] [gc][228384] overhead, spent [2.2s] collecting in the last [2.3s][2018-06-30T17:57:29...原创 2018-10-12 10:46:55 · 4956 阅读 · 0 评论