一、应用场景
分布式快速全文搜索引擎
1.海量数据分析引擎
2.站内搜索引擎
3.数据仓库
二、用法
1.restful API风格
(1)API基本格式:http://:/<index-索引>/<type-类型>/
(2)请求类型:POST\PUT\DELETE\GET
例如:
新增:POST:127.0.0.1:8080//
修改:PUT:127.0.0.1:8080///主键值/_update
删除:DELETE:127.0.0.1:8080/ 【删除索引】
查询:POST:
简单查询:127.0.0.1:8080///主键值
条件查询:127.0.0.1:8080///_search
三、与DB的类比
DB | ES | |
---|---|---|
Datebase(数据库) | index(索引) | |
Table(表) | type(类型) | |
row(行) | document(文档) | |
column(字段) | Field | |
schema | mapping |
eg:
查询user库的user_info表中叫“xx”的记录
mysql:
select * from user.user_info where name=“xx”
ES:
GET/use/user_info/_search?q=name:“xx”
四、在SpringBoot的使用
1.依赖maven包
2.配置文件配置相关
3.使用
Bean类
@Document(indexName="",type="doc",useServerConfiguration=true,createIndex=false)
//indexName---对应表名
//useServerConfiguration---是否启用服务端的配置
//createIndex---启动项目后检测,如果没有配置useServerConfiguration,就会自动加载到集群
class Bean{
@Id
private 主键;
@Field(type=FieldType.Text,analyzer="ik_max_word")
private 字段;//数据表里该字段类型是text,开启ik分词
}
Repository层,类似JPA
public BeanRepository extends ElasticsearchRepository<Bean,主键类型>{
}
Controller调用时候,和平时一样,自动注入,调用即可。
五、整合IK
1.gitHub上下载相应版本的ik压缩包
2.打开ES下的plugins目录,新建目录,将解压的ik文件拷入进去
3.重启ES,测试。