一、ES核心概念
- 索引
- 字段类型(mapping)
- 文档(document)
- 倒排索引
二、IK分词器
- IK分词器下载
- 解压放入到es对应的plugins下即可
- 重启观察ES,发现ik插件被加载了
2.1 使用kibana测试
2.1.1ik_smart: 最少切分
2.1.2 ik_max_word为最细粒度划分!穷尽词库的可能, 字典!
2.1.3 ik分词器增加自己词组
IKAnalyzer.cfg.xml同级目录新建.dic文件
配置完成重启即可
三、 Restful风格说明
3.1 索引基本操作
3.1.1 创建一个索引
PUT /索引名/类型名字/文档id
{请求体}
完成!
3.1.2 字段类型
3.1.3 指定字段类型
3.1.4 获取信息
若自己的文档没有指定类型,则ES会默认给我们指定字段类型。
拓展:通过命令ElasticSearch索引情况.
通过GET /_cat 命令比如:
GET /_cat/indices?v 查看所有信息
GET /_cat/health 获取健康值
可以可以获得ESt当前的很多信息如图:
3.1.5 修改信息
1使用PUT 直接覆盖
2 目前主流 POST
POST /XX/XX/X/_update
3.1.6 删除
通过DELETE命令实现删除、根据你的请求来判断是删除索引还是删除文档记录
使用RESTFUL风格是我们ES推荐大家使用的
3.2关于文档的操作(重点)
3.2.1 基本操作
1 添加数据
PUT /llll/user/1
{
"name": "1数据",
"age": "23",
"birth": "1999-05-07",
"decs": "一顿操作猛如虎,一看战绩0-5",
"tags": ["男","菜","王者荣耀","游戏"]
}
2 获取数据 GET
3 更新数据 POST
如果用PUT方式更新不传递值就会被覆盖
4 简单搜索
GET /llll/user/1
条件搜索
GET /llll/user/_search?q=name:POST修改修改数据
3.2.2 复杂操作
3.2.2.1 查询select()【排序,分页,高亮,模糊查询,精准查询】
3.2.2.2 排序
3.2.2.3 分页查询
3.2.2.4 多条件查询
must ( and ),所有的条件都要符合类似where id = 1 and name = XXX
should ( or ),所有的条件都要符合类似where id = 1 or name = XX
must_not ( not )
3.2.2.5 过滤器
- gt大于
- gte 大于等于
- lt小于
- lte 小于等于
3.2.3 匹配多个字段
3.2.4 精确查询
term查询是直接通过倒排索引指定的词条进程精确查找的
注意!!!
keyword字段必须完整输入才能查询
text字段可以输入部分
精确多条件查询
3.2.5 高亮查询
自定义高亮
四 附录
4.1 ElasticSearch安装
-
安装网址
ElasticSearch 7.8.0 -
安装可视化插件
需要node和grunt
- 安装node:
双击node.msi,安装很简单,直接下一步下一步就可以,安装完成后,在node安装文件夹nodejs根目录下有个npm.cmd文件,双击运行。
- 安装grunt :
安装node后执行 npm install -g grunt-cli 安装grunt
测试:
- 安装elasticsearch-head
elasticsearch-head
- 配置ES
如图所示:
http.cors.enabled: true
http.cors.allow-origin: “*”
加上配置跨域信息的配置 不然elasticsearch-head会访问不到报错 - 运行测试
进入ES bin目录如图所示 双击elasticsearch.bat 运行
随后进入elasticsearch-head 目录 在地址栏输入cmd 进入cmd界面
输入 npm run start
随后浏览器输入http://localhost:9100/即可访问