ElasticSearch的安装与启动
配置ElasticSearch支持跨域:config/elasticsearch.yml
1 | http.cors.enabled: true |
下载或在Google Chrome中添加ElasticSearch Head 插件,用于连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理。
启动ElasticSearch后,进行连接测试:
ElasticSearch核心概念
elasticsearch是面向文档的。
indices索引类似于关系型数据库中的数据库,默认将索引划分为多个分片,每个分片可以在集群中的不同的服务器之间进行迁移;一个分片就是一个Lucene索引,一个包含倒排索引的文件目录,有利于全文搜索。
document文档类似于关系型数据库中的行,索引和搜索的基本单位就是文档,就是一条条json数据;
fields类似于关系型数据库中的字段;
type类似于数据库中的表 (慢慢被废弃)。
ELK的简介
ELK是ElasticSearch、Logstash、Kiban三大开源框架的简称,一般用于日志的分析和收集等场景。
ElasticSearch是基于Lucene的分布式搜索引擎。
Logstash是ELK的中央数据流引擎,用于从不同目标(文件、MQ)中收集不同格式数据,经过过滤后输出到目的地(文件、MQ、reids、elasticsearch等)。
Kibana可将ElasticSearch中的数据进行友好的展示,并提供实时的分析功能。
Kibana的安装启动
启动ElasticSearch后,再启动Kibanna后访问http://localhost:5601
安装IK分词器
下载完成后解压到elasticsearch的plugins目录下即可。
在kibana的控制台进行测试:
最小切分 ik_smart
1 | GET _analyze |
1 | { |
最细粒度划分 ik_max_word
1 | GET _analyze |
1 | { |
在ik分词器的config目录下可以自定义字典,并进行配置
Restful
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
一句话描述:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
ElasticSearch基本操作
1、创建索引并添加文档PUT /索引名/类型名/文档id {请求体}
发送请求完成后,就创建了一条索引:
2、设置映射规则(字段类型)
3、获取索引信息:GET /test2
4、查看所有索引的信息:GET _cat/indices?v
5、修改索引中的文档POST /test3/_doc/1/_update {"doc":{"name":"zhangyuzhen"}}
6、删除索引:DELETE /test3
7、获取文档
创建索引并添加几条文档:
获取第一条文档数据: GET /test/user/1
指定条件获取数据:GET /test/user_search?q=name:lisi
复杂搜索:
条件匹配与结果过滤:
排序与分页:
bool多条件查询:
过滤器:
- gt 大于
- gte 大于等于
- lt 小于
- lte 小于等于
精确查询:
term,直接通过倒排索引指定的词条进行精确查找。
match,使用分词器解析。
keyword类型不会被分词器解析
查询关键字高亮: