
ElasticSearch
eff666
这个作者很懒,什么都没留下…
展开
-
ElasticSearch基本概念介绍(一)
1、概述 Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。ES比传统关系型数据库,就像如下:原创 2016-09-05 20:06:03 · 2267 阅读 · 0 评论 -
Elasticsearch权限监控——search-guard介绍
1、概述 search-guard是Elasticsearch的一个安全权限plugin,特性包括: 权限控制粒度可以到indices,types,甚至可以到过滤field层次。同时也可以限制用户行为CRUD, admin权限等。search-guard可以实现用户访问es中日志需要登陆授权,不同用户访问不同索引,不授权的索引无法查看,分组控制不同user查看各自的业务。search-guard原创 2016-10-24 22:20:25 · 9540 阅读 · 1 评论 -
Elasticsearch分页
1、概述Elasticsearch中数据都存储在分片中,当执行搜索时每个分片独立搜索后,数据再经过整合返回。ElasticSearch的搜索请求一次请求最大量为10000。如果超过则会发生错误。那么,如果数据量很大,就必须实现分页查询。如果我想查询前10条数据,按照一般的查询流程来说,会经历以下步骤: (1)客户端请求发给某个节点 (2)节点转发给个个分片,查询每个分片上的前10条 (3)结果原创 2017-03-18 10:31:26 · 1465 阅读 · 0 评论 -
将Mysql数据导入到ElasticSearch集群
一星期没有写博文了,只是因为最近领导交代了一项艰巨的任务,让我无暇顾及其他。将mysql数据库中的数据搬到我们的ES集群中。mysql数据是我们从阿里那边拉过来临时存放数据的地方,现在要将其存储到我们的集群中。说道这里,可能读者会觉得,这有什么难度。是的,如果数据量很少,几百万或者上千万确实多花点时间传送,就可以了。可是,如果是二十几亿的数据量呢,怎么办?领导给了我一星期时间,包括我写代码,调试速度原创 2016-09-04 11:23:38 · 17130 阅读 · 16 评论 -
ElasticSearch基本概念介绍(二)
1、特点 (1)Elasticsearch致力于隐藏分布式系统的复杂性。以下这些操作都是在底层自动完成的:1)将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。 2)将分片均匀的分配到各个节点,对索引和搜索做负载均衡。 3)冗余每一个分片,防止硬件故障造成的数据丢失。 4)将集群中任意一个节点上的请求路由到相应数据所在的节点。 5)无论是增加节点,还是移原创 2016-09-10 10:48:08 · 1042 阅读 · 0 评论 -
将Mysql数据导入到ElasticSearch集群
一星期没有写博文了,只是因为最近领导交代了一项艰巨的任务,让我无暇顾及其他。将mysql数据库中的数据搬到我们的ES集群中。mysql数据是我们从阿里那边拉过来临时存放数据的地方,现在要将其存储到我们的集群中。说道这里,可能读者会觉得,这有什么难度。是的,如果数据量很少,几百万或者上千万确实多花点时间传送,就可以了。可是,如果是二十几亿的数据量呢,怎么办?领导给了我一星期时间,包括我写代码,调试速度原创 2016-09-10 10:54:34 · 1570 阅读 · 0 评论 -
ElasticSearch的增删改查API介绍
1、基本用法 Elasticsearch集群可以包含多个索引(indices),每一个索引可以包含多个类型(types),每一个类型包含多个文档(documents),然后每个文档包含多个字段(Fields),它是面向文档型的储存。ES比传统关系型数据库,就像如下:Relational DB -> Databases -> Tables -> Rows -> ColumnsElasticsear原创 2016-09-04 14:22:47 · 3850 阅读 · 0 评论 -
kibana介绍
1、kibana简介Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。Kibana让我们理解大量数据变得很容易。它简单、基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询原创 2017-03-18 11:02:40 · 51109 阅读 · 0 评论 -
Elasticsearch的查询说明
1、Elasticsearch查询 1.1 通配符查询 wildcard是通配符查询,它和prefix查询类似,也是一个基于词条的低级别查询。但是它能够让你指定一个模式(Pattern),而不是一个前缀(Prefix)。它使用标准的shell通配符:?用来匹配任意字符,*用来匹配零个或者多个字符。//以下查询能够匹配包含W1F 7HW和W2F 8HW的文档:GET /my_index/addr原创 2016-10-19 21:22:41 · 8744 阅读 · 1 评论 -
Elasticsearch中的分词介绍
1、概述 在我们初次使用Elasticsearch查询的时候,有时会很困惑,为什么我存储的一段String数据,却查询不到?为什么输入了汉语单词,只能一个字一个字的匹配?等这些都与是否分词、使用什么分词器有关。1.1 分词概念 首先说说什么是分词器吧! 比如“分词介绍”: 如果是标准分词器,会把它拆分成“分”,“词”,“介”,“绍”。 如果使用一些汉语的分词器,则会分析成“分词”,“介绍”。原创 2016-10-19 20:55:12 · 3434 阅读 · 0 评论 -
Elasticsearch优化原理
1、数据索引 ES索引我们可以理解为数据入库的一个过程。我们知道ES是基于Lucene框架的一个分布式检索平台。索引的同样也是基于Lucene创建的,只不过在其上层做了一些封装。ElasticSearch客户端支持多种语言如PHP、Java、Python、Perl等,介绍将以java为例。2、索引优化 ES索引优化主要从两个方面解决问题: 2.1 索引数据过程 大家可能会遇到索引数据比较慢的原创 2016-10-18 09:06:18 · 1615 阅读 · 0 评论 -
ElasticSearch的安装部署及基本概念
1、简介 ElasticSearch(简称ES)是一个分布式、Restful的搜索及分析服务器,设计用于分布式计算;能够达到实时搜索,稳定,可靠,快速。它是基于Lucence的索引服务器,ElasticSearch的优点在于: (1)轻量级,安装启动方便,下载文件之后一条命令就可以启动。 (2)可以向服务器提交任意结构的JSON对象。 (3)多索引文件支持,使用不同的index参数就能创建原创 2016-10-18 08:53:43 · 732 阅读 · 0 评论 -
Elasticsearch的Bulk API使用
1、Elasticsearch的Bulk API允许批量提交index和delete请求。如: (1)用法1BulkRequestBuilder bulkRequest = client.prepareBulk();bulkRequest.add(client.prepareIndex("index1", "type1", "id1").setSource(source);原创 2016-09-04 14:07:33 · 19603 阅读 · 0 评论 -
ElasticSearch插入数据优化
1、多线程程序插入 可以根据服务器情况开启多个线程index,速度可以提高n倍, n>=2。如在上篇博文《将Mysql数据导入到ElasticSearch集群》示例的代码,开启了10个线程。但是可以线程也不是越多越好,要根据你磁盘的io,cpu等而定。2、设置复制分片数量 如果有多台机器,可以以每台设置n个shards的方式,根据业务情况,可以考虑取消replias(复制分片),等数据插入结束以原创 2016-09-12 08:48:18 · 5842 阅读 · 0 评论 -
关于org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError
最近在项目中集成hbase1.0.0和ElasticSearch2.3.3时出现了问题,今天我把其中一个比较尴尬的问题写下来,log中错误:org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatc原创 2016-07-23 17:39:35 · 17558 阅读 · 2 评论