ES基本概念

ES的简介

数据库查询存在的问题:

1.性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低

2.功能弱:如果以”华为手机“作为条件,查询不出来数据

es 相对关系型数据查询

 

词条 :将一段文本按照一定的规则,拆分为不同的词条(term)

倒排索引:将各个文档中的内容,进行分词,形成词条。然后记录词条和数据的唯一标识(id)的对

心应关系,形成的产物(倒排索引)。

 

 

正排索引 : 根据标题查询内容

倒排索引 : 根据词条查询内容,根据词条查询唯一标识(多个id 列表),根据唯一标识查询内容(分为两步执行)

生成的倒排索引中,词条会排序,形成一颗树形结构,提升词条的查询速度

 

es应用场景:

实时数据分析

搜索海量数据时

 

 

 

Mysql和es区别

MySQL有事务性而ElasticSearch没有事务性所以你删了的数据是无法恢复的。

.ElasticSearch没有物理外键这个特性,如果你的数据强一致性要求比较高还是建议慎用

 

 

ElasticSearch核心概念

索引(index)

ElasticSearch存储数据的地方,可以理解成关系型数据库中的数据库概念。

映射(mapping)

mapping定义了每个字段的类型、字段所使用的分词器等。相当于关系型数据库中的表结构。

文档(document)

Elasticsearch中的最小数据单元,常以json格式显示。一个document相当于关系型数据库中的一行数据。

倒排索引

一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,对应一个包含它的

]文档id列表。

类型(type)

一种type就像一类表。如用户表、角色喂等。

在Elasticsearch7.X默认type为_doc-ES 5.x中一个index可以有多种type。

- ES 6.x中一个index只能有一种type。

-ES 7.x以后,将逐步移除type这个概念,现在的操作已经不再使用,默认_doc

 

ES 默认使用的分词器是Standard 一个一个的分词的.

 

#match 。先会对查询的字符串进行分词,在查询。求交集GET penson/_search

"query": {

"match":{

"'address":“华为手机|

}

}

 

ik分词器

存储数据的时候安细粒度分词

 

如果场景需要有些词不能分词 可以去ik词典里添加就不会在分词.

 

 

ESApi :

springboot整合ES

交互的对象

RestHighLevelclient client = new RestHighLevelclient(RestClient.builder(

new HttpHost(

hostname: "192.168.149.135",port: 9200,

scheme: "http"

 

));

 

----------------------------------------------------------------------------------------------------------------------

 

ElasticSearch高级操作

批量操作:

Bulk批量操作是将文档的增删改查一些列操作,通过一次请求全都做完。减少网络传输次数。

批量操作格式:

#批里架作

# 1,删除5号记录

#2.添加8号记录

# 3,修改2号记录名称为“二号”

POST _bulk

{"delete":i"_index" : "person","_id”:"5"}}

{"create":{"_index" : ""person","_id":""8”}}

{ "name":"八号”, "age" :80, "address":”北京"}

{ "update:{"_index" :"person","_id":”2”}}

{ "doc" : { "name":“二号"}

●导入数据

●各种查询

索引别名和重建索引

 

 

---------------------------------------------------------------------------------------------------------------------------

布尔查询-脚本

boolQuery:对多个查询条件连接。连接方式:.

must (and):条件必须成立

must_not (not):条件必须不成立.

should (or):条件可以成立

. filter:条件必须成立,性能比must高。不会计算得分个

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值