学习-ES

2023-12-13 20:22:00

分布式搜索

了解

*可以从海量数据找到所需内容
*结合 kibana(数据可视化),logstash(数据抓取),es(存储计算)? 合称 ELK? (数据分析,监控)

mysql是正向索引()
es是倒排索引(先找查词条找到id,再根据id找到文档)
? ? ? ? 文档:一条数据
? ? ? ? 词条:将文档按语义
语(不重复)

es合mysql对比

*存储为json风格
*索引(index)(相同文档的集合)(表)
*文档(document)(就是行数据)
*字段(field)
*映射(mapping) 文档的约束-如字段名称类型(唯一约束)
*DSL? :json风格的请求语句 基于HTTP请求发送(sql)
?

分词器

(根据词库)

默认:对中文不是很友好
中文选择:IK
????????
可以拓展词汇合禁止词汇
? ? ? ? 两种模式:smart(智能粗粒度),max_word(最细粒度)

索引库操作(建表)

常见的Mapping属性:


*type:数据类型
? ? ? ? *字符串 :
text(可分词的), keyword(精确不可以拆)
? ? ? ? *数值:long,int,short,double,float
? ? ? ? *boolean
? ? ? ? *date:日期
? ? ? ? *对象:object? (json对象)
? ? ? ? *没有数组类型

*index: 是否创建索引 默认true
*analyzer :使用哪个分词器(对于字符串的text)
*properties:该字段的子字段(对于object对象)
?

禁止修改索引库,可以添加新字段

插入push,查get, 删? delete,改put

改put(id不存在就新增)

*全量修改
*局部修改

利用JavaRestClient操作

基本语法

DSL

*全文检索


*精确查询

*地理查询

*复合查询(将上述的组合起来)
?

java的restClient

文章来源:https://blog.csdn.net/weixin_38822255/article/details/134811989
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。