elasticsearch实现CRUD操作教程

阅读: 评论:0

elasticsearch实现CRUD操作教程

elasticsearch实现CRUD操作教程

文章目录

    • 简介
    • elasticsearch 结构介绍
    • 索引操作
        • (1)创建索引和表
        • (2)删除索引
        • (3)改变表结构
    • 增加数据
    • 修改数据
    • 删除数据
    • 查询数据
        • (1)、ID 查询
        • (2)、简单查询
          • 模糊查询
          • 短语查询
          • 多列查询
          • 分组聚合查询
          • 分组聚合计算
          • Query String 查询【java 语法常用】
          • 范围查询
        • (3)、Filter 查询
        • (4)、复合查询(should/must/must_not)

本文是针对 elasticsearch 6.2.2版本
使用 postman 进行相关操作

简介

CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建、查询、更改、删除,俗称“增删改查”。Elasticsearch作为NoSQL数据库(虽然ES是为搜索引擎而生的,但我更愿意将其看作带有强大文本搜索功能的NoSQL)。

elasticsearch 结构介绍

用Mysql这样的数据库存储就会容易想到建立一张User表,有balabala的字段等,在Elasticsearch里这就是一个文档,当然这个文档会属于一个User的类型,各种各样的类型存在于一个索引当中。这里有一份简易的将Elasticsearch和关系型数据术语对照表:

关系数据库      ⇒ 数据库        ⇒  表         ⇒ 行              ⇒ 列(Columns)Elasticsearch  ⇒ 索引(Index)   ⇒ 类型(type)  ⇒ 文档(Docments)  ⇒ 字段(Fields)  

索引操作

(1)创建索引和表
PUT 192.168.56.120:9200/mydemo
{"setting":{"index":{"number_of_shards":5,"number_of_replicas":1}},"mappings":{"userinfos":{"properties":{"userid":{"type":"integer"},"username":{"type":"text"},"birthday":{"type":"date","format":"yyyy-MM-dd||yyyy-MM-dd HH:mm:ss"},"say":{"type":"text"},"jobtime":{"type":"integer"}}}}
}
(2)删除索引
DELETE ip:9200/索引名
(3)改变表结构
POST 192.168.56.120:9200/mydemo/userinfos/_mapping{"userinfos":{"properties":{"aliasName":{"type":"text"}}}
}

增加数据

POST 192.168.56.120:9200/mydemo/userinfos/  //随机出id
{"aliasName":"峨眉师太","username":"周芷若","userid":1,"birthday":"1462-9-8","say":"峨嵋剑法,九阴真经","jobtime":18
}192.168.56.120:9200/mydemo/userinfos/2     //数字是默认id
{"aliasName":"少林方丈","username":"玄慈","userid":2,"birthday":"1462-9-8","say":"易筋经,少林达摩棍","jobtime":68
}

修改数据

POST 192.168.56.120:9200/mydemo/userinfos/1GHho24B-NsCrJJ68lSr/_update
// 1GHho24B-NsCrJJ68lSr 为id
{"doc":{"aliasName":"魔教教主","username":"张无忌"}
}

删除数据

DELETE 192.168.56.120:9200/mydemo/userinfos/1GHho24B-NsCrJJ68lSr
// 1GHho24B-NsCrJJ68lSr 为id

查询数据

(1)、ID 查询
GET 192.168.56.120:9200/mydemo/userinfos/1WHio24B-NsCrJJ6a1TJ
(2)、简单查询
模糊查询
```bash
GET 192.168.56.120:9200/mydemo/userinfos/_search{"query":{"match":{"username":"玄"}}
}
短语查询
GET 192.168.56.120:9200/dem/students/_search{"query":{"match_phrase":{"skill":"java javascript"}}
}GET
多列查询
GET 192.168.56.120:9200/dem/students/_search{"query":{"multi_match":{"query":"java","fields":["stuname","skill"]  // 分开的词汇是 or 关系}},"from":0,"size":1
}
分组聚合查询
{"aggs":{"group_by_age":{"terms":{"field":"stuage"}}}
}
分组聚合计算
{"aggs":{"group_by_age":{"avg":{"field":"stuage"}}}
}{"aggs":{"group_by_age":{"stats":{"field":"stuage"}}}
}
Query String 查询【java 语法常用】
GET 192.168.56.120:9200/dem/students/_search{"query":{"query_string":{"fields":["skill"],"query":"java AND vue"  // 词汇是 and 关系 与}}
}{"query":{"query_string":{"fields":["skill"],"query":"(NOT javascript) AND mysql"}}
}
范围查询
GET 192.168.56.120:9200/dem/students/_search{"query":{"range":{"stuage":{"gte":18,"lte":23}}}
}
(3)、Filter 查询
GET 192.168.56.120:9200/dem/students/_search
{"query":{"bool":{"filter":{"term":{"stubir":"1997-3-6"}}}}
}
(4)、复合查询(should/must/must_not)

此方法5.0 版本后不支持多列查询

{"query":{"bool":{"should":[{"match":{"stuage":21}},{"match":{"stuage":21}}]}}
}

本文发布于:2024-01-28 08:57:15,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064034396269.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:优质域名出售
下一篇:Linux学习之路
标签:操作   教程   elasticsearch   CRUD
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23