1、安装
1、下载kibana6.7.1
2、进入config文件夹修改kibana.yml
server.port: 5601
server.host: "192.168.212.100"
elasticsearch.url:"http://192.168.212.100:9200"
3、启动
./bin/kibana
4、访问
2、操作命令介绍
1、简单操作
###创建索引
PUT /mysirius
###查询索引
GET /mysirius
###创建文档 /索引/类型/id(库/表/id)
PUT /mysirius/user/1
{
"name":"zhangsan",
"sex":25
}
###查询文档
GET /mysirius/user/1
###修改文档(version会更新)乐观锁控制的
PUT /mysirius/user/1
{
"name":"zhangsan2",
"sex":25
}
###删除索引
DELETE /mysirius
###POST 为我们创建主键id
POST /mysirius/user/
{
"name":"zhangsan2",
"sex":25
}
###查询所有
GET /idx_01/user/_search
###根据多个id进行查询
GET /idx_01/user/_mget
{
"ids":["1",2]
}
###查看年龄是21岁
GET /idx_01/user/_search?q=age:21
###查看年龄区间
GET /idx_01/user/_search?q=age[20 TO 25]
###查看年龄区间年龄降序 分页
GET /idx_01/user/_search?q=age[20 TO 25]&sort=age:desc&from=0&size=1
2、dsl语言查询
es中的查询请求方式有两种,一种是简易版的查询,另外一种是使用json完整的请求体,叫做结构化查询(dsl).
由于dsl查询更为直观也更简易,所以大都使用这种方式。
dsl查询是post过去的一个json,由于post的请求是json格式,所以存在很多灵活性,也有很多形式。
###term 精确匹配
GET /idx_01/user/_search
{
"query": {
"term": {
"name":"王者"
}
}
}
###like match支持分词查询,对该字段进行分词查询
GET /idx_01/user/_search
{
"query": {
"match": {
"name":"王者"
}
}
}
###分页
GET /idx_01/user/_search
{
"from": 0,
"size": 2,
"query": {
"match": {
"name":"王者"
}
}
}
3、ik分词器
1、下载https://github.com/medcl/elasticsearch-analysis-ik/releases 一定要与es安装版本对应,
2、解压重命名为ik拷贝到elasticsearch-6.4.3\plugins
中文分词器:因为elasticsearch中默认的标准分词器分词器对中文分词不是很友好,会将中文词拆分成一个一个中文汉字。因此引入中文分词器es-ik插件
4、自定义扩展字典
进入elasticsearch-6.4.3\plugins\ik\config目录
新建文件custom/new_word.dic
修改IKAnalyzer.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom/new_word.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
重启es
5、文档映射
已把es的核心概念和关系数据库做了一个对比,索引(index)相当于数据库、类型(type)相当于数据表,映射(mapping)相当于数据表的表结构。es中的映射用来定义一个文档,可以定义所包含的字段以字段的类型、分词器以及属性等等。
文档映射就是给文档中的字段指定字段类型、分词器。
es会把tpye移除......
映射分类:
动态映射:不需要先定义映射(mapping),文档写入es时,会根据文档字段自动识别类型。默认映射为long类型。
静态映射:事先定义好映射,包含文档的各种字段及其类型
自动映射类型 查映射类型 get /sirius/_mapping
String类型里面
string类型分为 text和keyword,text会进行分词查询,keyword不会进行分词查询