elasticsearch学习笔记
一、概念
ElasticSearch(下面简称ES)是一个开源的、基于Apache Lucene的、分布式的实时分析搜索引擎。其设计理念就是可以从不同的数据源获取数据,进行实时的检索和分析。
二、使用curl命令创建和搜索索引
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。
参考地址:
https://www.cnblogs.com/ajianbeyourself/p/5529575.html
https://www.cnblogs.com/hanyouchun/p/5163183.html
http://blog.csdn.net/xialei199023/article/details/50090025
1、 创建一个名为scoring的新索引
2、 索引一个简单的文档
3、 执行一个简单的匹配(match)查询,查询的词项是“document”
4、 刚才索引的这个文档被匹配上了,并且被赋予了得分,通过一条命令来查看得分的计算过程
5、 把另一文档加入索引,此时如果执行最开始的查询,将看到如下响应
6、 前缀查询示例,先索引一些文档
7、 然后找出索引中所有name字段以字母j开头的文档
8、 返回结果有3个文档,这些文档的name字段以字母j开头,我们并没有显示设置待查询索引的映射,因此es探测出了name字段的映射,并将其设置为字符串类型并进行文本分析,可以使用如下命令进行检查
9、 刚才展示的前缀查询被es内部实现时,改写为了ConstantScore{name:jackname:jane name:joe},使用es api来检查重写片段,首先使用explain api执行以下命令
10、 可以看到,es对name字段使用了一个词项是joe的constant_score查询,这一步发生在lucene中,es实际上只是从缓存中获取这些词项,这一点可以用validate查询api来验证
11、查询改写的属性,rewrite参数可以配置的选项:scoring_boolean,constant_score_boolean,constant_score_filter,top_terms_N,top_terms_boost_N
12、 查询模板,es使用mustache模板引擎来为查询模板生成可用的查询语句。条件表达式,{{val}}表达式用来插入变量val的值,{{#val}}和{{/val}}则用来在变量val取值计算为true时把位于它们之间的变量标记替换为变量值。循环,循环结构定义和条件表达式一模一样,都位于{{#val}}和{{/val}}之间,如果表达式中变量取值是数组,则可以使用{{.}}标记来指代当前变量值。默认值,默认值标记允许我们在参数未定义时给它设置默认取值。
三、使用kibana同样可以对索引进行查询,Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。
参考地址:http://blog.csdn.net/ming_311/article/details/50619804
四、使用Spring Data ElasticSearch创建索引和检索索引
1、 创建一个Document实体类
2、 创建一个Repository接口继承ElasticsearchRepository
3、 创建业务Service接口和实现类
4、 创建服务控制器类
5、 创建客服端调用控制器类
6、 执行查询全部方法后,结果如图所示
参考地址:http://blog.csdn.net/liuxigiant/article/details/52105024
五、elasticsearch的一些常用linux命令
1、查看是否启动命令
ps aux|grep elasticsearch
2、启动命令
/etc/init.d/elasticsearch start
3、停止命令
/etc/init.d/elasticsearch stop
4、重启命令
/etc/init.d/elasticsearch restart
5、查看程序安装目录
rpm -qa |grep elasticsearch
6、查看操作系统版本
cat /proc/version
7、elasticsearch head客户端启动命令
node_modules/grunt/bin/grunt server
六、一些插件的参考地址
1、ik和pinyin插件参考地址
http://blog.csdn.net/napoay/article/details/53907921
2、head插件参考地址
http://blog.51cto.com/hnr520/1867033
http://blog.csdn.net/tanga842428/article/details/76161461