1. 安装
- 本地下载elasticsearch-7.16.3,启动bin目录下的elasticsearch
- 访问http://localhost:9200 出现如下,测试成功
- ElasticSearch(简称为es)是一个开源的高扩展的分布式全文检索引擎,它可以近乎 实时存储、检索数据
- 官网:www.elastic.co/cn/
- 下载地址: www.elastic.co/cn/download…
-
安装可视化界面 es-head 插件
-
es解决跨域:
elasticsearch.yml http.cors.enabled: true http.cors.allow-origin: "*" xpack.security.enabled: false
npm run start 启动es-head
- 索引就是库,es-head只用来做数据的展示,kibana用来查询
- 安装kibana 解压有点慢,直接运行bin目录下的kibana,访问http://localhost:5601/进行测试
kibana汉化
目录: /Users/dingyawu/Documents/es/kibana-7.16.3-darwin-x86_64/config
7.kibana用到的命令
GET /.kibana
get _cat/indices
查看有哪些索引
- es概念
集群,节点,索引,类型,文档,分片,映射是什么?
indices 是索引的意思
elasticsearch(集群)中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)。
elasticsearch在后台把每个索引划分成多个分片,每个分片可以在集群中的不同服务器间迁移!
一个人就是一个集群!默认的集群名elasticsearch
一个集群至少有一个节点,而一个节点就是一个elasricsearch进程,节点可以有多个索引默认的,如果你创建索引,那么索引将会有个5个分片(primary shard,又称主分片)构成的,每一个主分片会有一个副本(replica shard,又称复制分片)
主分片和对应的复制分片都不会在同一个节点内,这样有利于某个节点挂掉了,数据也不至于丢失
一个分片是一个Lucene索引,一个包含倒排索引的文件目录,倒排索引的结构使得elasticsearch在不扫描全部文档的情况下,就能告诉你哪些文档包含特定的关键字
- ik分词器
ik提供了两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word为最细粒度划分!一会我们测试!
如果要使用中文,建议使用IK分词器
下载地址:github.com/medcl/elast… 下载完成之后,解压放在elasticsearch的plugins文件下
重新启动ES以后启动会看到这个
或者用这个命令可以查ES加载的插件
分析两种分词器方式的不同
GET _analyze
{
"analyzer": "ik_max_word",
"text": "我们都一样"
}
GET _analyze
{
"analyzer": "ik_smart",
"text": "我们都一样"
}
配置自定义的分词器,
配置目录:/Users/dingyawu/Documents/es/elasticsearch-7.16.3/plugins/ik/config
重启ES
10 . kibana 操作
创建索引
PUT /yawutest
{
"mappings":{
"properties":{
"name":{
"type":"text"
},
"age":{
"type":"long"
},
"sex":{
"type": "long"
}
}
}
}
查看索引的信息
get yawutest
获取数据
GET /yawutest/_doc/4
修改数据
POST /yawutest/_doc/4/_update
{
"doc":{
"name": "dingupdate"
}
}
删除索引
DELETE yawutest
精确查询
GET /yawu/user/_search?q=name:dingyawulearnjava
只更新列出的部分
POST /yawu/user/1/_update
{
"doc":{
"name": "dingyawulearnjava"
}
}
搜索模糊查询。keyword类型能精确匹配,_source对搜索结果过滤
GET /yawu/user/_search
{
"query":{
"match":{
"desc":"一顿操作"
}
},
"_source":["name"]
}
分页排序查询
GET /yawu/user/_search
{
"query":{
"match":{
"desc":"一顿操作"
}
},
"sort":[
{
"age":{
"order":"asc"
}
}
],
"from":0,
"size":1
}
多条件查询
GET /yawu/user/_search
{
"query":{
"bool":{
"must":[
{
"match":{
"desc": "一顿操作"
}
},
{
"match":{
"age":30
}
}
]
}
}
}