
Elasticsearch专栏
文章平均质量分 54
信息检索基础、Lucene应用、Elasticsearch、ELK日志处理
esc_ai
这个作者很懒,什么都没留下…
展开
-
Lucene索引合并
@Test public void mergeIndex() throws IOException { Analyzer analyzer=new HanLPAnalyzer(); IndexWriterConfig icw = new IndexWriterConfig(analyzer); icw.setOpenMode(Inde...原创 2018-08-24 15:07:35 · 863 阅读 · 2 评论 -
Elasticsearch 同义词配置
什么是同义词就不用说了,直接说怎么实现。测试环境:ES 5.5.1 一、同义词词库准备一个同义词词库,每行一个同义词词组,例子syno.dic:西红柿,番茄,tomato马铃薯,土豆二、配置分析器DELETE synoPUT syno{ "settings": { "analysis": { "filter": { &原创 2018-06-27 10:29:56 · 3815 阅读 · 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 · 1993 阅读 · 0 评论 -
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 · 822 阅读 · 0 评论 -
Elasticsearch Java API(十二)--搜索时指定分析器
一、问题 今天群里一个同学提了一个问题,如何在搜索时指定分析器,实现自由切换。二、分析我们知道,分析器是写在mapping里面的,通过配置analyzer来指定的。如果没有额外的配置,analyzer中指定的分析器,既是索引期的分析器,又是搜索期的分析器。单独指定搜索期的分析器可以用search_analyzer覆盖。三、解决在搜索时指定分析器,只需要在构造Query的时...原创 2018-05-02 19:46:29 · 2311 阅读 · 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 · 6283 阅读 · 3 评论 -
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 · 4056 阅读 · 1 评论 -
ELK日志处理之metricbeat服务器性能监控
一、需求监控服务器的CPU使用率、内存使用情况、线程数等机器物理性能,类似于Windows的资源管理器功能。二、解决方案使用Elastic公司的Metricbeat,Metricbeat和Filebeat一样,是一个轻量级的采集器,不但可以监控服务器的性能指标,还可以监控运行在服务区之上的应用信息(eg.Apache、MongoDB、MySQL、Ngnix、PostgreSQL、R...原创 2018-02-01 21:31:10 · 14709 阅读 · 4 评论 -
解读Elasticsearch分析器中的重要术语
导读:Elasticsearch分析器中的Analysis、Analyzer、Tokenizer、Token Filter、Character Filter,你知道是什么含义吗?一、什么是Analysis ?Analysis翻译为分析器,其功能是把文本切分成词项(词项是倒排索引中的基本单位)。二、什么是Analyzer?分析器的功能主要是通过分词器(Analyzer)来实原创 2018-01-07 02:15:08 · 1517 阅读 · 0 评论 -
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 · 4943 阅读 · 3 评论 -
《从Lucene到Elasticsearch:全文检索实战》已出版!
一、前言决定在优快云写博客的原因是想把自己解决过的问题、踩过的坑、总结出来的经验记录下来,作为编程之路的“笔记本”,同时也能给遇到同样问题的人提供参考、节省时间,写书的初衷也一样。二、缘起说一下写书的前因后果。中国科学院大学雁栖湖校区是很重要的一年,师资团队无可挑剔,每次上课去的稍微晚一点,300人的大教室都没有座位。对于计算机学院而言,大数据、机器学习、信息检索(搜索引擎)、算...原创 2017-12-05 01:48:47 · 10001 阅读 · 13 评论 -
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 · 11589 阅读 · 0 评论 -
Elasticsearch 集群优化总结
一、硬件层面优化配置(1) 合理选择服务器。Elasticsearch的运行对JDK版本、Linux内核、最小内存等都有一定的要求,在安装部署集群之前需要选择和Elasticsearch版本匹配的的服务器配置,同时也要根据业务量做集群规划。(2)提高Linux系统应用程序最大打开文件数。在启动Elasticsearch集群以前,增大机器的最大文件数,可以避免数据导入高峰时期打开文件过多异常的发生。原创 2017-09-10 20:01:36 · 4466 阅读 · 3 评论 -
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 · 3032 阅读 · 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 · 6912 阅读 · 0 评论 -
Elasticsearch压力测试工具-Apache Jmeter
一、下载Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi解压之后运行:/apache-jmeter-3.2/bin./jmeter二、添加线程组依次店测试计划->添加->threads->线程组:在线程组中添加线程数和用户数,模拟用户访问: 10个用户,每个用户200个线程,循环10次。三、添加请求在线程组下,依次添加->Samp原创 2017-06-30 20:47:44 · 6532 阅读 · 1 评论 -
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 · 34508 阅读 · 2 评论 -
ELK日志处理之Filebeat工作原理
Filebeat简介、Filebeat和Logstash的对比、Filebeat工作原理、配置原创 2017-04-18 17:00:13 · 7980 阅读 · 0 评论 -
Intellij Idea编译Elasticsearch源码
如果想阅读Elasticsearch源码,定制功能,不可避免的要编译Elasticsearch。本文图文并茂,介绍如何使用Intellij Idea编译Elasticsearch源码包。原创 2017-03-27 20:06:28 · 9363 阅读 · 1 评论 -
ELK日志处理之使用Grok解析日志
介绍如何在logstash中使用Grok和正则表达式解析任意格式日志,以及Grok Debugger的使用。原创 2017-03-17 13:26:24 · 25936 阅读 · 0 评论 -
图解Elasticsearch中的_source、_all、store和index属性
Elasticsearch中有几个关键属性容易混淆,很多人搞不清楚_source字段里存储的是什么?store属性的true或false和_source字段有什么关系?store属性设置为true和_all有什么关系?index属性又起到什么作用?什么时候设置store属性为true?什么时候应该开启_all字段?本文通过图解和代码测试进行解析。原创 2017-03-15 20:29:26 · 50006 阅读 · 17 评论 -
ELK日志处理之使用logstash收集log4J日志
介绍logstash处理log4j日志,包括log4j的简介、工程的搭建、log4j配置、logstash配置,实现日志从产生到logstash再到Elasticsearch的整个流程。原创 2017-03-11 00:29:52 · 32885 阅读 · 19 评论 -
Elasticsearch Java API(十一)--聚合(aggregations)
Elasticsearch分析聚合介绍了分析聚合的REST命令,这篇博客介绍一下如何使用Java API。一、准备数据测试数据请参考我的上一篇博客:Elasticsearch分析聚合。二、需求查询title中包含关键字”程序”的文档,统计查询按编程语言分组,统计每组的文档数量。三、REST命令行REST命令行如下,有三部分,query查询所有title中包含关键词程序的文档,size指定返回结果中文原创 2017-02-21 12:15:29 · 15179 阅读 · 2 评论 -
Lucene扩展停用词字典与自定义词库
介绍如何在Lucene 6.0中扩展停用词,如何通过自定义字典把"厉害了我的哥"分成一个词原创 2017-02-04 18:23:51 · 6843 阅读 · 2 评论 -
Elasticsearch 5.1.1搜索高亮及Java API实现
5.1.1的搜索高亮和2.X有所变化,但是变化不大。下面分四步来介绍:创建索引(设置mapping/IK分词)、索引文档、REST API的搜索高亮、JAVA API的搜索高亮。 注:从这篇博客开始,采用简写的代码风格,也就是Sence插件或者kibana的dev tools中采用的风格。(温馨提示:安装kibana 5.1.1,在dev tools中直接可以使用简单格式命令。)一、创建索引文档结原创 2016-12-28 17:39:01 · 21674 阅读 · 16 评论 -
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 · 32928 阅读 · 18 评论 -
Elasticsearch 5 Ik+pinyin分词配置详解
一、拼音分词的应用拼音分词在日常生活中其实很常见,也许你每天都在用。打开淘宝看一看吧,输入拼音”zhonghua”,下面会有包含”zhonghua”对应的中文”中华”的商品的提示:拼音分词是根据输入的拼音提示对应的中文,通过拼音分词提升搜索体验、加快搜索速度。下面介绍如何在Elasticsearch 5.1.1中配置和实现pinyin+iK分词。二、IK分词器下载与安装关于IK分词器的介绍不再多少,原创 2016-12-28 13:57:15 · 31380 阅读 · 14 评论 -
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 · 47991 阅读 · 50 评论 -
Elasticsearch分析聚合
Elasticsearch不仅仅适合做全文检索,分析聚合功能也很好用。下面通过实例来学习。一、准备数据{"index":{ "_index": "books", "_type": "IT", "_id": "1" }}{"id":"1","title":"Java编程思想","language":"java","author":"Bruce Eckel","price":70.20,"year":原创 2016-12-06 11:15:46 · 12560 阅读 · 0 评论 -
导入Logstash日志到Elasticsearch
导入logstash日志到Elasticsearch一、logstash是什么?Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。当然它可以单独出现,作为日志收集软件,你可以收集日志到多种存储系统或临时中转系统,如MySQL,redis,kakfa,HDFS, lucene,s原创 2016-11-22 10:21:24 · 15995 阅读 · 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 · 20566 阅读 · 4 评论 -
Elasticsearch java client 获取mapping
通过java客户端获取mapping:package elasticsearch.in.action.client;import java.net.InetAddress;import java.net.UnknownHostException;import org.elasticsearch.client.transport.TransportClient;import org.elastic原创 2016-11-15 22:50:27 · 8133 阅读 · 1 评论 -
Elasticsearch Java API(十)--Multi Get API
使用multi get API可以通过索引名、类型名、文档id一次得到一个文档集合,文档可以来自同一个索引库,也可以来自不同索引库。示例如下:MultiGetResponse multiGetItemResponses = client.prepareMultiGet() .add("twitter", "tweet", "1") //注释1原创 2016-10-16 16:03:13 · 3765 阅读 · 3 评论 -
[搜索]Lucene仿百度文库文件检索系统
一、准备文件2016中国人工智能大会 顶尖专家齐聚.pptx2016中国人工智能大会 大咖云集探讨人工智能.doc2016中国人工智能大会在京召开.docxJavaScript闭包详解.docx如何使用JSON.doc中国人工智能大会CCAI 2016圆满落幕.pdf中科院副院长:人工智能 找风口不如找关口.txt二、搜索框三、搜索结果页声明: 本博客拒绝转载!原创 2016-10-01 10:24:21 · 3864 阅读 · 10 评论 -
Elasticsearch索引管理
1.判断索引是否存在IndicesExistsResponse indexResponse = ia.client.admin().indices().prepareExists("blog").execute().actionGet();System.out.println(indexResponse.isExists());也可以同时判断多个索引是否存在:IndicesExistsRespon原创 2016-08-24 09:18:23 · 4482 阅读 · 2 评论 -
搭建Elasticsearch 5.4分布式集群
一、集群角色多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点。Zen发现是ES自带的默认发现机制,使用多播发现其它节点。只要启动一个新的ES节点并设置和集群相同的名称这个节点就会被加入到集群中。Elasticsearch集群中有的节点一般有三种角色:master node、data node和clien原创 2016-08-14 07:18:18 · 53815 阅读 · 13 评论 -
Elasticsearch shield权限管理详解
ElasticSearch本身没有权限管理模块,只要获取服务器的地址和端口,任何人都可以随意读写ElasticSearch的API并获取数据,这样非常不安全。如果获取了ES的访问IP和端口,一条命令就可以删除整个索引库。好在Elastic公司开发了安全插件shield来解决权限管理问题. https://www.elastic.co/products/shield 一、shield安装...原创 2016-08-13 21:06:16 · 29862 阅读 · 18 评论 -
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 · 10361 阅读 · 5 评论 -
Elasticsearch Java API(八)--搜索有相同父id的子文档
需求:搜索具有相同父id的所有子文档.数据: mapping: { "mappings": { "branch": {}, "employee": { "_parent": { "type": "branch" } } } }原创 2016-08-04 13:40:50 · 7210 阅读 · 2 评论 -
Elasticsearch索引的父子关系(index parent-child)
Elasticsearch允许给文档建立父子关系,这篇博客介绍文档的父子关系是如何映射的、如何索引父子文档、如何通过子文档查询父文档 、如何通过父文档查询子文档.原创 2016-07-26 14:17:19 · 25640 阅读 · 7 评论