Elasticsearch入门
Elasticsearch简介
一个分布式的、Restful风格的搜索引擎。
支持对各种类型的数据的检索。
搜索速度快,可以提供实时的搜索服务。
便于水平扩展,每秒可以处理PB级海量数据。
• Elasticsearch术语
- 索引:相当于数据库中的数据库
- 类型:一开始相当于数据库表格,6.0版本之后被弃用;
- 文档:存储在Elasticsearch中的一个JSON格式的字符串。它就像在关系数据库中表的一行。
- 字段:相当于关系数据库中表的列,每个字段都对应一个字段类型。
-
- 集群:集群由一个或多个节点组成,对外提供服务,对外提供索引和搜索功能。
- 节点:节点是组成Elasticsearch集群的基本服务单元,集群中的每个运行中的Elasticsearch服务器都可称之为节点。
- 分片:当索引的数据量太大时,受限于单个节点的内存、磁盘处理能力等,节点无法足够快地响应客户端的请求,此时需要将一个索引上的数据进行水平拆分。拆分出来的每个数据部分称之为一个分片。
- 副本:对主分片的备份;
下载安装
官网地址:https://www.elastic.co/cn/
**下载要注意版本是否和当前SpringBoot中父Pom中声明的版本是否一致,在6-7版本有较大变化 **
如果多次尝试后还是启动服务器报错,建议重新安装其他版本(可能是JDK版本冲突)
配置集群的名字 es存放数据的位置 日志的路径
elasticseach.ym1文件下的
cluster.name: community
path.data: D:\work\data\Elasticsearch
path.logs: D:\work\data\ElasticsearchLogs
配置环境变量
安装中文分词工具
github: 搜索 Elasticsearch ik 与Elasticsearch版本相对应(必须一致 不然启动会报错!!!)
安装路径固定解压到Elasticsearch安装目录的plugins下的ik目录
可以在 IKAnalyzer.cfg 配置自己的字典
安装PostMan (非必须)
以客户端的形式对Elasticsearch服务器进行操作(非必须,也可以使用命令行),但是更加麻烦
官网: https://www.postman.com
1、启动服务器,执行bat命令
2、使用GET查询索引列表
localhost:9200/_cat/indices?v
3、向Elasticsearch服务器添加数据
如果路径中指定了不存在的索引会自动建立索引
_doc是类型占位符 在7.0版本中删除了类型
在Body里使用JSON字符串添加数据
服务器地址/索引/占位符/id
更改数据可以使用PUT,会替换旧数据
PUT: localhost:9200/test/_doc/1
4、查询刚才插入的数据
GET: localhost:9200/test/_doc/1
5、删除指定数据
DELETE: localhost:9200/test/_doc/1
6、测试中文搜索分词
先插入三条数据
对关键词进行分词
匹配到其中之一的
localhost:9200/test/_search?q=content:互联网实习
复杂条件搜索在RAW使用JSON
localhost:9200/test/_search
{
"query":{
"multi_match":{ //复合搜索
"query":"实习", //查询内容
"fields":["title","content"] //内容所在的位置
}
}
}