
elasticsearch
丹江怒潮
这个作者很懒,什么都没留下…
展开
-
ES-Hadoop使用
上篇文章简单介绍了ES-Hadoop插件的功能和使用场景,本篇就来看下如何使用ES-hadoop里面的ES-Spark插件,来完成使用spark想es里面大批量插入数据。这里说明下ES-Hadoop是一个fat的maven依赖,也就是引入这个包会导入许多额外的依赖,不建议这么搞,除非是测试为了方便用的,实际情况是ES也单独提供了每个不同框架的mini包,比如说只使用spark那么就可以单独转载 2017-08-07 16:24:14 · 4025 阅读 · 0 评论 -
Elasticsearch——使用学习1(API约定,多个索引支持)
在Elasticsearch中,一般的查询都支持多索引。只有文档API或者别名等不支持多索引操作,因此本篇就翻译一下多索引相关的内容。首先,先插入几条数据:$ curl -XPOST localhost:9200/test1/test/1 -d '{"name":"test1"}'$ curl -XPOST localhost:9200/test1/test/2 -d '{"na转载 2018-02-02 09:32:26 · 192 阅读 · 0 评论 -
Elasticsearch——使用学习2(API常用参数)
Elasticsearch——Rest API中的常用用法本篇翻译的是Elasticsearch官方文档中的一些技巧,是使用Elasticsearch必不可少的必备知识,并且适用于所有的Rest Api。返回数据格式化当在Rest请求后面添加?pretty时,结果会以Json格式化的方式显示。另外,如果添加?format=yaml结果会以树的形式显示,默认都转载 2018-02-02 09:49:59 · 277 阅读 · 0 评论 -
Elasticsearch嵌套式对象Nested分析
原文请参考: https://www.felayman.com/articles/2017/11/10/1510292946325.htmlnested结构是Elasticsearch提供关系存储的一种特殊的结构,是NOSQL的一种高级特性,在传统的关系型sql中,很难做到一行记录中存储某个实体以及附属的内容,比如某个用户下评论数据,或某个订单下的所有商品等这种关系比较强的内容。当然传统s转载 2018-02-02 11:23:33 · 854 阅读 · 0 评论 -
elasticsearch mapping 学习(parent-child)
ES 父子文档查询父子文档的特点1. 父/子文档是完全独立的。2. 父文档更新不会影响子文档。3. 子文档更新不会影响父文档或者其它子文档。父子文档的映射与索引1. 父子关系 type 的建立必须在索引新建或 update-mapping 时候确定好PUT /company{ "mappings": { "b转载 2018-02-02 10:22:57 · 1595 阅读 · 0 评论 -
esAPI使用及中文分词
1.建立映射,使用中文分词器PUT /zw { "mappings": { "person" : { "properties" : { "addr" : { "type" : "text", "analyzer": "ik_max_word" },原创 2018-01-30 11:20:35 · 1718 阅读 · 0 评论 -
spark中直接使用es的client
因为jar冲突,es client使用的httpjar被忽略,所以导致报错,所以使用以下命令确保用户的jar被优先加载。spark-submit --class SparkTest --master yarn --deploy-mode client \--driver-cores 1 \--driver-memory 1G \--num-executors 1 \--exe原创 2018-02-06 15:16:54 · 866 阅读 · 0 评论 -
查询时权重提升
编辑在 语句优先级(Prioritizing Clauses) 中,我们解释过如何在搜索时使用 boost 参数让一个查询语句比其他语句更重要。 例如:GET /_search{ "query": { "bool": { "should": [ { "match": { "title": { ...转载 2018-02-12 10:18:45 · 503 阅读 · 0 评论 -
elasticsearch searchAPI 之 search template 查询模板
最近在公司又用到了elasticsearch,也用到了查询模板,顺便写篇文章记录一下查询模板的使用。以1个需求为例讲解es模板的使用:页面上某个按钮在一段时间内的点击次数统计,并且可以以小时,天,月为单位进行汇总,并且需要去重。创建索引,只定义3个字段,user_id, user_name和create_time:-POST /$ES/event_index{ "mappings": {...转载 2018-02-12 10:32:04 · 1750 阅读 · 0 评论 -
elasticsearch映射
前面讲到,无论是关系型数据库还是非关系型数据库,乃至elasticsearch这种事实上承担着一定储存作用的搜索引擎,数据类型都是非常重要而基础的概念。但elasticsearch与其它承担着数据存储的技术有着比较大的区别之一就是映射,和倒排索引。映射是定义如何存储和编制文档及其包含的字段的过程。例如,使用映射来定义:哪些字符串字段应被视为全文字段。哪些字段包含数字,日期或地理位置。文档中所有字段...转载 2018-02-12 15:37:23 · 229 阅读 · 0 评论 -
ES doc_values介绍——本质是field value的列存储,做聚合分析用,ES默认开启,会占用存储空间(列存储压缩技巧,除公共除数或者同时减去最小数,字符串压缩的话,直接去重后用数字ID压
大家知道,搜索引擎的基本数据结构是反向索引,也就是为每个关键词建立了到文档的映射,然后所有的关键词是一个有序列表。搜索的时候,只要先从有序列表中匹配到关键词,就能搜索到包含该关键词的所有文档,反向索引的数据结构对于关键词搜索的场景是非常高效的。但聚合分析和搜索有很大的不同。典型的场景,比如计算某个文档中每个关键词的出现次数,反向索引就无能为力了,需要先扫描整个关键词映射表,才能找到该文档包含的所有...转载 2018-02-08 11:13:18 · 943 阅读 · 0 评论 -
elasticsearch 过滤器
本章翻译自Elasticsearch官方指南的Filtering Queries and Aggregations一章。过滤查询以及聚合A natural extension to aggregation scoping is filtering. Because the aggregation operates in the context of the query scope, any fil...转载 2018-02-08 14:24:25 · 384 阅读 · 0 评论 -
Elasticsearch - 短语匹配(match_phrase)以及slop参数
短语匹配(Phrase Matching)就像用于全文搜索的的match查询一样,当你希望寻找邻近的单词时,match_phrase查询可以帮你达到目的。GET /my_index/my_type/_search{ "query": { "match_phrase": { "title": "quick brown fox" } ...转载 2018-02-08 16:03:01 · 972 阅读 · 0 评论 -
Elasticsearch使用rescore重打分机制
1、match和match_phrase(proximity match)的区别match --》只要简单的匹配到了一个term,就可以理解将term对应的doc作为结果返回,扫描倒排索引,扫描到了就OK。match_phrase --》首先扫描到所有term的doc list;找到包含所有term的doc list;然后对每个doc都计算每个term的position,是否符合指定的范围;slo...转载 2018-02-08 16:26:16 · 5477 阅读 · 0 评论 -
Elasticsearch 动态映射——自动检测
ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引、类型等信息,在索引的同时会自动完成索引、类型、映射的创建。那么什么是映射呢?映射就是描述字段的类型、如何进行分析、如何进行索引等内容。本篇就着重讲述下,ES中映射的自动检测特性。更多内容参考:Elastisearch知识总结字段自动检测在某个字段第一次出现时,如果之前没有定义过映射,ES会自转载 2018-02-01 10:48:56 · 482 阅读 · 0 评论 -
elasticsearch bool组合查询
# bool组合查询# filter:过滤,不参与打分# must:如果有多个条件,这些条件都必须满足 and与# should:如果有多个条件,满足一个或多个即可 or或# must_not:和must相反,必须都不满足条件才可以匹配到 !非布尔查询与匹配其他查询的布尔组合的文档相匹配的查询。bool查询映射到Lucene BooleanQuery。它是使用一个或多个布尔子句构转载 2018-02-01 10:04:39 · 4916 阅读 · 0 评论 -
kibana使用
1. 添加索引到kibana2. 添加到kibana后就可以使用kibana的各种功能来对索引进行分析。2.1 进行可视化在ES中的聚合,大体上可以为两类聚合方法,metric和bucket。metic可以理解成avg、sum、count、max、min,bucket可以理解为group by 。有了这两种聚合方法,就可以对ES中的数据做很多处理了原创 2018-01-31 17:52:32 · 568 阅读 · 0 评论 -
Elasticsearch 5.0下Java API使用指南
二.创建maven工程2.1Eclipse中新建maven工程打开eclipse,file->other->maven project: 创建group id(相当于工程名)和artifact id(相当于包名): 2.2在pom.xml中添加以下依赖dependencies> dependency> groupId转载 2017-08-08 11:01:41 · 700 阅读 · 0 评论 -
elasticsearch的object类型和动态映射
我们需要讨论的最后一个自然JSON数据类型是对象(object)——在其它语言中叫做hash、hashmap、dictionary 或者 associative array.内部对象(inner objects)经常用于在另一个对象中嵌入一个实体或对象。例如,做为在tweet文档中user_name和user_id的替代,我们可以这样写:{ "tweet":原创 2017-08-08 13:49:31 · 8775 阅读 · 1 评论 -
查询与过滤
查询与过滤前面我们讲到的是关于结构化查询语句,事实上我们可以使用两种结构化语句: 结构化查询(Query DSL)和结构化过滤(Filter DSL)。 查询与过滤语句非常相似,但是它们由于使用目的不同而稍有差异。一条过滤语句会询问每个文档的字段值是否包含着特定值:created 的日期范围是否在 2013 到 2014 ?status 字段中是否包含单词 "publi转载 2017-08-08 13:51:24 · 282 阅读 · 0 评论 -
倒排索引
倒排索引Elasticsearch使用一种叫做倒排索引(inverted index)的结构来做快速的全文搜索。倒排索引由在文档中出现的唯一的单词列表,以及对于每个单词在文档中的位置组成。例如,我们有两个文档,每个文档content字段包含:The quick brown fox jumped over the lazy dogQuick brown foxes leap over转载 2017-08-08 14:09:36 · 367 阅读 · 0 评论 -
elasticsearch性能
机器配置4台 16核 32G内存1 使用logstash导入一般速度在1w条每秒2 自己开发程序使用批量导入API 开20线程可以达到10w条每秒优化总结:1 使用批量API2 使用多线程3 选用合适的JVM参数,包括内存和垃圾回收器。4 对不需要的字段不进行分析5 使用最新的es版本。待验证。。。。。原创 2017-08-08 16:18:52 · 453 阅读 · 0 评论 -
elasticsearch原理系列一(准实时索引实现原理)
准实时索引的实现?本文主要介绍Elasticsearch的准实时索引的实现,至于基于Lucene的倒排索引将不在这里介绍,有兴趣的读者可以去Lucene的相关文章,或者阅读《Lucene in Action》等书籍。下面将介绍Elasticsearch索引流程中发生的具体操作,重点在于其中的segment、buffer和translog三部分对性能方面的影响。1、动态更新的Lucn转载 2017-08-09 11:18:38 · 1503 阅读 · 0 评论 -
ElasticSearch的Gateway及存储原理
ES里有一个叫做gateway的东西,今天抽空理一下,前面翻译ES的一篇博文叫做“搜索引擎与时间机器”,既然里面谈到了时间机器,就免不了需要穿越时空的的门咯,I guess,也许gateway这名字就是这么来的,其实在ES里面,gateway的主要职责是用来对数据进行长持久化(持久化了之后加上版本信息,不就可以自由的往还于过去未来之间了吗?),另外,整个集群重启之后可以通过gateway重新恢转载 2017-08-11 15:17:57 · 1235 阅读 · 0 评论 -
图解Elasticsearch中的_source、_all、store和index属性
Elasticsearch中有几个关键属性容易混淆,很多人搞不清楚_source字段里存储的是什么?store属性的true或false和_source字段有什么关系?store属性设置为true和_all有什么关系?index属性又起到什么作用?什么时候设置store属性为true?什么时候应该开启_all字段?本文通过图解的方式,深入理解Elasticsearch中的_source、_all、转载 2017-08-11 17:51:28 · 326 阅读 · 0 评论 -
elasticsearch 查询(match和term)
es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST过去一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。这里有一个地方注意的是官方文档里面给的例子的json结构只是一部分,并不是可以直接黏贴复制进去使用的。一般要在外面转载 2017-08-06 15:18:10 · 319 阅读 · 0 评论 -
elasticsearch 版本 2xx和5xx 及 elasticsearch5.x 新特性
其实,elasticsearch5.x 和 elasticsearch2.x 并不区别很大。 是因为,ELK里之前版本各种很混乱,直接升级到5.0了。 其实,elasticsearch5.x 按理来说是elasticsearch3.x,只是为了跟随ELK整体版本的统一。 下面给大家转载 2017-09-28 09:30:35 · 8187 阅读 · 0 评论 -
Elasticsearch.5.4.1+kibana5.4.1+IK分词集群搭建
报错问题解决es安装过程中可能会遇到以下错误,对应解决方案错误1:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]修改:/etc/security/limits.conf* hard nofile转载 2017-09-28 17:06:57 · 326 阅读 · 0 评论 -
elasticsearch-sql插件安装与使用
elasticsearch版本为2.2.0源码地址:https://github.com/NLPchina/elasticsearch-sql/tree/elastic2.2.0安装方式有以下三种:1、按照以上链接说明的方式进行安装./bin/plugin install https://github.com/NLPchina/elasticsearch-sql/r转载 2017-09-28 17:22:17 · 715 阅读 · 0 评论 -
Elasticsearch【正则搜索】分析&实践
在ES中有很多使用不是很频繁的查询,可以达到一些特殊的效果。比如基于行为路径的漏斗模型。本篇就从使用上讲述一下正则表达式查询的用法。Regexp Queryregexp允许使用正则表达式进行term查询.注意regexp如果使用不正确,会给服务器带来很严重的性能压力。比如.*开头的查询,将会匹配所有的倒排索引中的关键字,这几乎相当于全表扫描,会很慢。因此如果可以的话,最好在使用正则转载 2018-01-31 15:42:21 · 752 阅读 · 1 评论 -
elastic映射、分词
一. fields和keyword使用示例:1.建立索引PUT url{}2.建立映射PUT url/_mapping/test{ "properties": { "url": { "type": "text", "fields": { "keyword": { "type原创 2018-01-31 16:38:28 · 402 阅读 · 0 评论 -
ElasticSearch复合数据类型——数组,对象和嵌套
在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON文档都内在地具有层次结构。复合数据类型是指数组类型,对象类型和嵌套类型,各个类型的特点分别是:数组字段是指一个字段有多个值,每个值都是该数组字段的一个元素;元素的类型可以是基础类型,也可以是文档类型;...转载 2018-02-08 17:12:14 · 1784 阅读 · 0 评论