Elasticsearch
文章平均质量分 54
esc_ai
这个作者很懒,什么都没留下…
展开
-
Elasticsearch电商搜索分词效果调优
分词是搜索中非常核心的一步,下面通过一个案例介绍在没有专业分词系统的情况下,如何做分词性能的调优。原创 2018-08-06 00:17:59 · 5369 阅读 · 1 评论 -
[搜索]ElasticSearch Java Api(一) -创建索引
ElasticSearch JAVA API一、生成JSON创建索引的第一步是要把对象转换为JSON字符串.官网给出了四种创建JSON文档的方法:1.1手写方式生成String json = "{" + "\"user\":\"kimchy\"," + "\"postDate\":\"2013-01-30\",&qu原创 2016-06-19 23:25:52 · 81718 阅读 · 45 评论 -
Elasticsearch的Javascript Client使用指南
一、添加js库 使用Elasticsearch Javascript API需要两个JS库的支持,一个是JQuery[下载地址:http://www.jq22.com/jquery/jquery-1.8.3.zip],一个是elasticsearch.js[下载地址:https://download.elasticsearch.org/elasticsearch/elasticsearch-j原创 2017-12-23 02:46:20 · 4869 阅读 · 3 评论 -
Elasticsearch面试题系列
1.query是怎么分发到每个节点的?2.Elasticsearch使用上的优化有哪些?3.怎么避免脑裂?4.query和filter的区别?5.Elasticsearch的缺点有哪些?你觉得可以在哪些地方进行改进?6.Lucene加快查询的机制有哪些?7.如何使用Lucene构建分布式索引?8.说一下master节点选举算法9.El...原创 2017-10-21 23:09:04 · 11526 阅读 · 0 评论 -
Elasticsearch 集群优化总结
一、硬件层面优化配置(1) 合理选择服务器。Elasticsearch的运行对JDK版本、Linux内核、最小内存等都有一定的要求,在安装部署集群之前需要选择和Elasticsearch版本匹配的的服务器配置,同时也要根据业务量做集群规划。(2)提高Linux系统应用程序最大打开文件数。在启动Elasticsearch集群以前,增大机器的最大文件数,可以避免数据导入高峰时期打开文件过多异常的发生。原创 2017-09-10 20:01:36 · 4430 阅读 · 3 评论 -
Elasticsearch索引mapping的写入、查看与修改
mapping的写入与查看首先创建一个索引:curl -XPOST "http://127.0.0.1:9200/productindex"{"acknowledged":true} 现在只创建了一个索引,并没有设置mapping,查看一下索引mapping的内容:curl -XGET "http://127.0.0.1:9200/productindex/_mapping?pretty" {原创 2016-07-24 09:32:55 · 139008 阅读 · 3 评论 -
Elasticsearch 5.4 Mapping详解
前言一Field datatype字段数据类型1string类型2 text类型3 keyword类型4 数字类型5 Object类型6 date类型7 Array类型8 binary类型9 ip类型10 range类型11 nested类型12token_count类型13 geo point 类型二Meta-Fields元数据1 _all2 _field_nam翻译 2017-06-12 14:22:13 · 34091 阅读 · 2 评论 -
Elasticsearch 5.1.1 head插件安装指南
Elasticsearch 5.1.1 head插件安装指南一、下载安装包下载Elasticsearch 5.1.1下载地址:https://www.elastic.co/downloads/elasticsearchzip和tar格式是各种系统都通用的,解压之后启动Elasticsearch即可。下载elasticsearch-head下载地址:https://github.com/mobz/el原创 2016-12-27 16:05:33 · 32880 阅读 · 18 评论 -
MapReduce编程(六) 从HDFS导入数据到Elasticsearch
Elasticsearch for Hadoop安装以及如何从HDFS导入数据到Elasticsearch原创 2017-04-01 19:26:20 · 12743 阅读 · 7 评论 -
Elasticsearch 5.X下JAVA API使用指南
Elasticsearch 5.0下Java API使用指南一.2.X到5.XElasticsearch 2.x使用java api把elasticsearch安装包下的lib文件夹下的jar文件全部加入到工程类路径即可,换到5.x就不适用了.创建Clien的代码:Settings settings = Settings.builder().put("cluster.name", "elastics原创 2016-12-12 11:45:06 · 47907 阅读 · 50 评论 -
elasticsearch聚合案例--分组、求最大值再求最大值的均值
#一、需求 A、B、C代表3个用户,第二列代表各自的得分,求A、B、C的最好成绩以及A、B、C最好成绩的均值A 10A 11A 13B 11B 11B 12C 10C 10C 11C 15二、思路先terms分组,求最大值,最后加一个pipeline均值。一开始想用bucket_script解决,实验发现走不通,但是bucket_script在聚合结果之上操作很有用三、测试数据P原创 2017-07-12 20:23:03 · 15241 阅读 · 5 评论 -
Elasticsearch 5.4 Query DSL
Elasticsearch提供了丰富的查询语句DSL,查询可分2类:Leaf Query:查询特定字段特定值的查询,可以单独使用,比如match查询、term查询、range查询。Compound Query:组合查询,组合多个简单查询或者特殊查询。先占坑,有时间更新Y(^_^)Y原创 2017-06-30 12:56:20 · 2447 阅读 · 1 评论 -
《从Lucene到Elasticsearch:全文检索实战》已出版!
一、前言决定在CSDN写博客的原因是想把自己解决过的问题、踩过的坑、总结出来的经验记录下来,作为编程之路的“笔记本”,同时也能给遇到同样问题的人提供参考、节省时间,写书的初衷也一样。二、缘起说一下写书的前因后果。中国科学院大学雁栖湖校区是很重要的一年,师资团队无可挑剔,每次上课去的稍微晚一点,300人的大教室都没有座位。对于计算机学院而言,大数据、机器学习、信息检索(搜索引擎)、算...原创 2017-12-05 01:48:47 · 9953 阅读 · 13 评论 -
Elasticsearch 同义词配置
什么是同义词就不用说了,直接说怎么实现。测试环境:ES 5.5.1 一、同义词词库准备一个同义词词库,每行一个同义词词组,例子syno.dic:西红柿,番茄,tomato马铃薯,土豆二、配置分析器DELETE synoPUT syno{ "settings": { "analysis": { "filter": { &原创 2018-06-27 10:29:56 · 3692 阅读 · 2 评论 -
解决ES-Hadoop打包报错“Mkdirs failed to create /var/folders...”问题
一、报错问题在mac下运行ES-Hadoop项目,报错如下:Bee:eshadoop bee$ hadoop jar target/eshadoop-1.0-SNAPSHOT-jar-with-dependencies.jar /work/blog.jsonException in thread "main" java.io.IOException: Mkdirs failed to c...原创 2018-05-21 13:08:43 · 1958 阅读 · 0 评论 -
Elasticsearch Java API(十三)--Java API获取分词结果
需求Java API获取Elasticsearch的分词结果.版本Elasticsearch 5.4 已安装ik分词器测试先创建一个索引:curl -XPUT localhost:9200/bbb返回结果:{ "acknowledged":true, "shards_acknowledged":true}好了,现在es里面有一个b...原创 2018-05-02 20:18:31 · 6209 阅读 · 3 评论 -
Elasticsearch Java API(十二)--搜索时指定分析器
一、问题 今天群里一个同学提了一个问题,如何在搜索时指定分析器,实现自由切换。二、分析我们知道,分析器是写在mapping里面的,通过配置analyzer来指定的。如果没有额外的配置,analyzer中指定的分析器,既是索引期的分析器,又是搜索期的分析器。单独指定搜索期的分析器可以用search_analyzer覆盖。三、解决在搜索时指定分析器,只需要在构造Query的时...原创 2018-05-02 19:46:29 · 2266 阅读 · 0 评论 -
Elasticsearch和Kibana安装X-Pack
一、Elasticsearch安装X-PACK安装命令:bin/elasticsearch-plugin install x-pack默认用户名:elastic 默认密码:changeme访问9200端口需要输入用户名和密码:二、Kibana安装X-packbin/kibana-plugin install x-pack登录Kibana的时候输入用...原创 2018-03-29 13:39:20 · 4013 阅读 · 1 评论 -
elasticsarch 6安装遇到的问题集锦
1.不能以root用户运行org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root新建用户,非root运气。2.JDK不能低于1.83.[1]: max virtual memory areas vm.max_map_...原创 2018-04-09 12:32:35 · 801 阅读 · 0 评论 -
Elasticsearch shield权限管理详解
ElasticSearch本身没有权限管理模块,只要获取服务器的地址和端口,任何人都可以随意读写ElasticSearch的API并获取数据,这样非常不安全。如果获取了ES的访问IP和端口,一条命令就可以删除整个索引库。好在Elastic公司开发了安全插件shield来解决权限管理问题. https://www.elastic.co/products/shield 一、shield安装...原创 2016-08-13 21:06:16 · 29798 阅读 · 18 评论 -
ELK日志处理之metricbeat服务器性能监控
一、需求监控服务器的CPU使用率、内存使用情况、线程数等机器物理性能,类似于Windows的资源管理器功能。二、解决方案使用Elastic公司的Metricbeat,Metricbeat和Filebeat一样,是一个轻量级的采集器,不但可以监控服务器的性能指标,还可以监控运行在服务区之上的应用信息(eg.Apache、MongoDB、MySQL、Ngnix、PostgreSQL、R...原创 2018-02-01 21:31:10 · 14636 阅读 · 4 评论 -
Elasticsearch 6 新特性与重要变更解读
2017年11月14日,Elastic Stack 6.0正式亮相,这篇文章总结Elasticsearch 6.0版本的一些新的特性和重要改变,根据官网文档,变更部分包括下列部分,下面一一说明。Aggregations changes Cat API changes Clients changes Cluster changes Document API changes Indice...原创 2018-01-25 13:52:03 · 15695 阅读 · 4 评论 -
Intellij Idea设置代码的注释信息
导读:在Java开发中给每个类加上作者信息、创建时间等版本信息,对于后期的维护、别人阅读代码都很有益处。Intellij Idea中设置类的注释信息的方法如下。Intellij Idea ->Preference ->Editor->File and code Templates->Includes ->File Header:在FileHeader中声明注释信息,具体内容可以定原创 2018-01-07 15:00:23 · 2260 阅读 · 0 评论 -
解读Elasticsearch分析器中的重要术语
导读:Elasticsearch分析器中的Analysis、Analyzer、Tokenizer、Token Filter、Character Filter,你知道是什么含义吗?一、什么是Analysis ?Analysis翻译为分析器,其功能是把文本切分成词项(词项是倒排索引中的基本单位)。二、什么是Analyzer?分析器的功能主要是通过分词器(Analyzer)来实原创 2018-01-07 02:15:08 · 1480 阅读 · 0 评论 -
Elasticsearch 5.4 Documents API
ELasticsearch文档的CRUD主要包括以下2个大的方面:单文档和多文档,翻译如下:一、单文档API1.1 Index API写入文档,索引为twitter,type为tweet,id为1:PUT twitter/tweet/1{ "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" :翻译 2017-06-15 22:20:20 · 3012 阅读 · 0 评论 -
Elasticsearch 5.4 Indices(索引) API
前言一索引管理1 创建索引2 删除索引3 查看索引信息4 索引是否存在5 关闭打开索引6 索引收缩7 翻滚索引二mapping管理1 设置mapping2 查看mapping3 获取字段mapping4 类型是否存在三别名管理1 索引别名设置四索引配置1 获取索引设置2 更新索引设置3 分析器4 索引模板五监控管理1 索引统计信息2 索引段3 索引恢复翻译 2017-06-15 22:19:01 · 6858 阅读 · 0 评论 -
解决linux下root运行Elasticsearch异常
在CentOS 6.5 上运行Elasticsearch 2.3,异常如下:Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstr原创 2016-11-20 02:39:32 · 20526 阅读 · 4 评论 -
ElasticSearch集群入门
一、下载与安装Elasticsearch 依赖 java,在安装 ES 之前首先要配好 java,这个默认我们的电 脑已经完成。 首先从 elasticsearch官网下载安装包,我们是 linux 系统,下载 tar 包比较方便。当前版本为2.3.3,下载地址:Elasticsearch 2.3.3下载 .下载完成之后解压tar文件:tar -zxvf elasticsearch-2.3.3.原创 2016-06-18 17:42:05 · 12567 阅读 · 13 评论 -
ElasticSearch Java Api(二) -检索索引库
上篇博客记录了如何用java调用api把数据写入索引,这次记录下如何搜索。一、准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", "SVN与Git最主要的区别...")); String data2 = JsonUtil.model2Json(new Blog(2, "Java中泛原创 2016-06-23 21:40:32 · 19200 阅读 · 29 评论 -
ElasticSearch Java Api(四) -删除索引
删除可以是删除整个索引库,也可以根据文档id删除索引库下的文档,还可以通过query查询条件删除所有符合条件的数据。一、删除整个索引库下面的例子会删除indexName索引:DeleteIndexResponse dResponse = client.admin().indices().prepareDelete(indexName) .execute原创 2016-06-29 14:11:20 · 32134 阅读 · 10 评论 -
ElasticSearch同步MySql
ElasticSearch同步Mysql的插件选择了elasticsearch-jdbc,理由是活跃度高,持续更新,最新版本兼容elasticsearch-2.3.3.一、下载下载地址:https://github.com/jprante/elasticsearch-jdbc 下载后解压,里面有bin、lib2个目录. 二、mysql配置确保mysql能用,在mysql中新建一个test数据库m原创 2016-07-01 09:07:45 · 9707 阅读 · 11 评论 -
Elasticsearch java api(五) Bulk批量索引
这篇博客介绍一下Elasticsearch对多个文档进行索引的简便方法。Bulk api的支持可以实现一次请求执行批量的添加、删除、更新等操作.Bulk操作使用的是UDP协议,UDP无法确保与ElasticSearch服务器通信时不丢失数据.一、Bulk API使用bulk命令时,REST API以_bulk结尾,批量操作写在json文件中,官网给出的语法格式:action_and_meta_dat原创 2016-07-14 14:49:27 · 42682 阅读 · 18 评论 -
Elasticsearch内存分配设置
编辑:elasticsearch-2.3.3/bin/ elasticsearch 加上:export ES_HEAP_SIZE=10g或者启动的时候设置参数,确保Xmx和Xms大小相等:./bin/elasticsearch -Xmx10g -Xms10g官网说明: https://www.elastic.co/guide/en/elasticsearch/guide/current/heap原创 2016-07-23 07:53:28 · 21387 阅读 · 3 评论 -
Elasticsearch索引的父子关系(index parent-child)
Elasticsearch允许给文档建立父子关系,这篇博客介绍文档的父子关系是如何映射的、如何索引父子文档、如何通过子文档查询父文档 、如何通过父文档查询子文档.原创 2016-07-26 14:17:19 · 25566 阅读 · 7 评论 -
Elasticsearch Java Api(六)--DeleteByQuery
参考stackoverflow上的帖子,总结DeleteByQuery的java api原创 2016-07-26 19:06:19 · 13246 阅读 · 4 评论 -
Elasticsearch Java API(七)--多级嵌套搜索
要在java中实现一个有三级父子关系的嵌套搜索,相关资料很少,发在stackoverflow上以后一个Switzerland的大神很快回复了我,google+stackoverflow很好使。对应的命令行query:{ "query": { "has_child": { "type": "instance", "query": {原创 2016-07-29 04:44:53 · 15644 阅读 · 11 评论 -
Elasticsearch Java API(八)--搜索有相同父id的子文档
需求:搜索具有相同父id的所有子文档.数据: mapping: { "mappings": { "branch": {}, "employee": { "_parent": { "type": "branch" } } } }原创 2016-08-04 13:40:50 · 7186 阅读 · 2 评论 -
Elasticsearch Java API(九)--删除文档的field以及field的属性
一、需求项目中需要实现删除文档的一个field以及删除指定field的一个属性. 以文档test/document/1为例:{ "_index": "test", "_type": "document", "_id": "1", "_score": 1, "_source": { "class": "com.test.data",原创 2016-08-04 16:00:09 · 10317 阅读 · 5 评论 -
Elasticsearch索引管理
1.判断索引是否存在IndicesExistsResponse indexResponse = ia.client.admin().indices().prepareExists("blog").execute().actionGet();System.out.println(indexResponse.isExists());也可以同时判断多个索引是否存在:IndicesExistsRespon原创 2016-08-24 09:18:23 · 4449 阅读 · 2 评论 -
导入Logstash日志到Elasticsearch
导入logstash日志到Elasticsearch一、logstash是什么?Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。当然它可以单独出现,作为日志收集软件,你可以收集日志到多种存储系统或临时中转系统,如MySQL,redis,kakfa,HDFS, lucene,s原创 2016-11-22 10:21:24 · 15935 阅读 · 0 评论