目前的工作中库很多业务普通关系型数据已经不能满足业务需求,因此很多场景需要用到搜索引擎技术,下面介绍一下ElasticSearch。
1、准备工作
下面的安装都是以Windows环境为基础
需下载安装的工具包:需注意这三个版本需保持完全一致,安装部署参考地址:https://juejin.cn/post/7448309749991899177
elasticSearch:核心,存储数据
解压缩包后,如果启动发现jdk版本问题启动不了 可以修改elasticsearch-env.bat 中配置使用 es自带jdk
kibana:可视化工具
解压缩后修改config中kibana.yml对应上es的地址
ik:分词工具
在plugins中新建ik文件夹 将压缩包解压至此文件夹即可
es:一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能
2、ik分词器
ik分词器作用:
创建倒排索引时对文档进行分词
用户搜索时 对输入内容进行分词
ik分词器有几种模式
ik_smart:只能切分 粗粒度
ik_max_word:最细切分 细粒度
ik分词器如何扩展词条、如何停用词条
利用config目录中的IkAnalyzer.cfg.xml文件添加拓展词典与停用词典
在词典中添加扩展词条与停用词条
3、ES中DSL以及在Java中的使用
DSL库表操作:
mapping常见属性(对应表中的字段)
type:数据类型(需注意字符串有text与keyword两种类型,前者可以分词 后者不可以分词)
index:是否索引(默认为true)
analyzer:分词器(配合数据类型为text使用)
properties:子字段
如下所示:
{
"mappings": {
"properties": {
"user_id":{
"type": "text",
"index":false,
"analyzer": "ik_smart",
"properties":{
"name":{
"type": "keyword"
}
}
}
}
}
type常见的有哪些
字符串:text、keyword
数字:long、integer、short、byte、double、float
布尔:booler
日期:date
对象:object
索引库的操作有哪些
创建索引库:PUT /索引库名
查询索引库:GET /索引库名
删除索引库:DELETE /索引库名
修改索引库: PUT /索引库名/_mapping (只支持增加索引库字