Es 基础操作 增删改查
ES想知道大家应该都很熟悉了,今天就来稍微介绍入门下 也是为了帮助自己记忆
一. ES专属名称
看上面图就知道了 具体分片副本的就不讲那么细了 还有个倒排索引可以了解下 相当于把内容拆分成分词 然后每个分词都对应哪些内容对应的id 这样查到了分词就能查到哪些内容有这个词
ps :特别强调7.x版本后就没有type了 差不多就相当于索引 = 表 文档=数据了
二. ES基本操作 (直接学这个就好了 版本7.x)
1.创建索引(表)
PUT /my_index
{
"settings": {
"number_of_shards": 1, // 指定索引的分片数
"number_of_replicas": 1 // 指定每个主分片的副本数
},
"mappings": {
"properties": {
"title": {
"type": "text" // 标题字段,全文搜索类型
},
"author": {
"type": "keyword" // 作者字段,适合精确匹配,不用于全文搜索
},
"published_date": {
"type": "date" // 出版日期字段,存储日期类型
},
"content": {
"type": "text" // 内容字段,全文搜索类型
},
"tags": {
"type": "keyword" // 标签字段,适合存储多个标签,支持精确匹配
}
}
}
}
删除修改等后面遇到了再查吧
2.文档操作增删改查 (同样只写个最基础的)
新增修改
PUT /user/user/1
{
"id":1,
"name":"战三",
"age":18
}
post全量新增修改 可以不指定id(不指定记得返回保存id)
put全量新增修改 必须指定id
post修改单独某个doc列 需要改成 post /user/user/1/_update
删除
// 条件删
POST /my_index/_delete_by_query
{
"query": {
"term": {
"author": "张三"
}
}
}
// id删除
DELETE /my_index/_doc/id
三.查询(比较重要)
ES主要就是解决查询问题 这个当然是重点
{
"query": { // 查询对象
// 使用 "match_all" 查询,获取所有文档
"match_all": {}
// 使用 "term" 查询,精确查询
"term": {
"price": {
"value": "1899.99"
}
}
// 使用 "match" 查询,匹配列 分词查询文档
"match": {
"title": "小米 手机"
}
// 使用 "match_phras" 查询,匹配列 不分词查询文档
"match_phras": {
"title": "小米 手机"
}
// 使用 "range" 查询,匹配范围 查询文档
"range": {
"price": {
"gte": 1600,
"lte": 2800
}
}
},
"from": 0, // 从第0个结果开始,表示第一页
"size": 10, // 返回10条结果,表示每页显示10条文档
"sort": [ // 排序数组,用于指定结果的排序
{
"timestamp": { // 按照timestamp字段进行排序
"order": "desc" // 降序排列,最新的文档排在前面
}
}
]
}