ElasticSearch 基础 文字教程
声明:本文大部分截图来自视频 https://www.bilibili.com/video/BV17a4y1x7zq,请尊重版权,转发请注明来源。
看看ElasticSearch做什么
适用场景:
生态:ELK
Elasticsearch+Logstash+Kibana
es目录结构:
继续安装可视化界面,前端环境,nodejs,npm
说明:第3步,更改的是elasticsearch的config目录下elasticsearch.yml文件
一些术语:
索引:库
文档:数据
kibana:使用kibana查询数据展示
https://www.elastic.co/cn/elastic-stack
kibana版本要与Elasticsearch的版本一致。
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-linux-x86_64.tar.gz
tar zxf kibana-7.9.3-linux-x86_64.tar.gz
进入config目录,编辑kibana.yml,
找到 elasticsearch.hosts: [“****:9200”] 改为已经启动的es服务
进入bin目录,./kibana –allow-root 直接执行,等待启动完成
放弃了,linux服务器太弱,启动太慢了,用了将近10分钟,改用本地windows的了。
kibana中文配置: /config/kibana.yml 最后一行:i18n.locale: “zh-CN”
windows版切换ok,启动ok
访问localhost:5601
用的比较多的就是 开发工具菜单。
一些概念
倒排索引:划重点
====================================================
ik分词器
ik分词器下载:
https://github.com/medcl/elasticsearch-analysis-ik
编译后的,可以直接用的下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases
我这里截图用的是7.9.3,配合elasticsearch的版本。
进入elasticsearch 的plugins目录
mkdir ik
cd ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip
unzip elasticsearch-analysis-ik-7.9.3.zip
删除zip文件,重启elasticsearch
启动好之后,验证是否加载了插件,进入bin目录,执行如下命令
sh elasticsearch-plugin list
有ik分词器,即可。
使用kibana测试ik分词器
ik_smart:最小切分
ik_max_word:最细粒度划分
切换到kibana的开发工具:
GET _analyze
{
“analyzer”: “ik_smart” ,
“text”: [“烟熏童子鸡”]
}
两种分词效果如上图示。
对于自定义配置,如何增加字典配置。
进入分词器目录,config/IKAnalyzer.cfg.xml
在config目录下新增一个test.dic,输入榜园
上图中改为<entry key=”ext_dict”>test.dic</entry>
效果:
====================================================
RestFul API & CRUD
创建一个索引:
PUT /test1/type1/1
{
“name”:”榜园-测试”,
“desc”:”1234″
}
kibana上查看下:
如何制定字段类型:创建索引规则
PUT /test2
{
“mappings”: {
“properties”: {
“name”:{
“type”: “text”
},
“desc”:{
“type”: “text”
},
“age”:{“type”: “integer”}
}
}
}
如果未指定类型,es会自动匹配类型。
Get命令:
GET /test1 获取索引
GET /test1/type1/1 获取文档
修改数据
方法一:PUT方式
PUT /test1/type1/1
{
“name”:”榜园-测试”,
“desc”:”12345″
}
version有了变化,从1变成2.
方法二:POST方式
POST /test1/type1/1/_update
{
“doc”:{
“desc”:”1234567″
}
}
可以看到version变成了3,desc内容也随之改变
删除:DELETE命令 根据命令提供的索引还是文档来进行删除动作
DELETE test1/type1/1
DELETE test1
复杂操作:条件查询
GET /test1/type1/_search?q=name:榜园
排序,分页,高亮,模糊查询,精确查询
基本查询:
GET _search
{
“query”: {
“match”: {
“name”: “榜园”
}}}
排序:sort
分页:from,size
多条件查询:bool 方式,must命令类比and条件,should类比or条件,must not 类比 not, filter:range,gt >,gte >=, lt <, lte <=
多个查询关键字,关键字之间用空格分开
精确查询:term
term是精确查找
match使用分词器查找
两个类型:text-会被分词器解析,keyword-不会被分词器解析
多个条件查询:
高亮查询:
设置高亮样式
====================================================
Spring boot集成ES
官方文档:
Elasticsearch Clients | Elastic
找到maven仓库配置
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.11.0</version>
</dependency>
注意在java工程中使用的es high level版本要与es服务的版本一致
初始化ES client 对象:
CRUD:TODO
发表评论