Elasticsearch-7x-常用命令

集群信息查看欢迎信息# urlhttp://112.xx.xx.xx:9200/查看集群是否健康# 查看集群健康状态# urlhttp://112.xx.xx.xx:9200/_cluster/health# KibanaGET /_cluster/health查看节点列表# 查看节点列表# urlhttp://112.xx.xx.xx:9200/_cat/nodes?v# KibanaGET /_cat/nodes?v索引查看所有索引# 查看所有索引GET /_cat/indices查看某个索引的 mapping# 查看某个索引的 mappingGET /kibana_sample_data_ecommerce/_mapping查看某个索引的 settings# 查看某个索引的 settingsGET /kibana_sample_data_ecommerce/_settings文档的增删改查(CRUD)Elasticsearch类比MySQL说明Indexreplcae intoIndex在索引不存在时会创建索引,replace into 并不会创建库或表Createinsert into增加Readselect读取Updateupdate更新Deletedelete删除Index(增加 or 更新)指定 IDPOST /my_index/_doc/1{"user":"walker"}系统自动生成 IDPOST /my_index/_doc{"user":"walker"}Create(增加)指定 IDPOST /my_index/_create/2{"user":"walker"}Read(读取)返回索引的所有文档# 返回索引的所有文档GET /kibana_sample_data_ecommerce/_search根据ID查看文档# 根据ID查看文档GET /kibana_sample_data_ecommerce/_doc/xPGYeWwBVtEez7y_Ku1Uterm 查询精确匹配# term 查询精确匹配GET /_search{ "query": { "term": { "currency": "EUR" } }}# 通过 Constant Score 将查询转换成一个 Filtering# 避免算分,并利用缓存,提高性能GET /_search{ "query": { "constant_score": { "filter": { "term": { "currency": "EUR" } } } }}通配符模糊查询# 通配符模糊查询GET /_search{ "query": { "wildcard": { "currency": "*U*" } }}# 通过 Constant Score 将查询转换成一个 Filtering# 避免算分,并利用缓存,提高性能GET /_search{ "query": { "constant_score": { "filter": { "wildcard": { "currency": "*U*" } } } }}Update(更新)指定 ID 更新POST /my_index/_update/1{ "doc": { "user": "walker", "age": 99 }}Delete(删除)指定 ID 删除DELETE /my_index/_doc/1批量操作上面讲的都是对单文档进行操作,多文档批量操作可自行去翻看官网文档:Document APIs ...

August 27, 2019 · 1 min · jiezi

Mybatis单表CRUD与关联查询的通用方案之一:通用CRUD

在diboot 2.0版本框架的封装过程中,我们遇到的问题和最终的解决方案也许可以给此时的你提供些帮助和思路,于是就有了这些系列文章。此系列主题为“Mybatis单表CRUD与多表关联查询的通用方案”,目的是给出一套简单灵活易用的通用方案,可以做到1.利用通用Mapper框架实现单表CRUD,2.自己动手封装基于注解的多表关联实现方案。一、Mybatis的CRUD通用解决方案为什么需要通用Mapper?Mybatis中针对一个单表的CRUD操作一般要在其对应Mapper中写SQL,表的字段名会多次出现,当字段变更,增减时都需要同步修改其Mapper,繁琐且易出错。针对于单表的CRUD是比较简单的,可以在Entity中将字段与数据库表的列进行绑定,然后借助一个通用Mapper实现通用的CRUD,这样针对单表CRUD的操作将不再需要写SQL。通用Mapper框架的选择Mybatis-plus v3.x版本除了提供通用Mapper之外,还具备了方便易用的基于Lambda的条件构造器以及逻辑删除乐观锁等解决方案。另外也有其他轻量级的通用Mapper实现,比如Mapper 4.x,也是一个通用Mapper框架的选择。用上了通用Mapper,感觉越像JPA了?如果只是单表的CRUD,通用mapper方案确实跟JPA类似,不过JPA在Java代码里写SQL和对于复杂查询的处理不便,都带来了开发维护的麻烦。依然选用Mybatis方案,既借助通用Mapper实现了类似JPA的单表处理便利性,又保留了Mybatis自定义SQL的灵活性优势。多表关联如何处理?对于多表关联的处理,通用Mapper并没有给出较好的解决方案,你可以通过自定义SQL关联查询绑定,每个都要去写SQL,这样很繁琐。另外一个方案就是类似JPA的通过注解绑定表关联关系,然后实现查询结果的绑定。这个方案可以将关联查询拆解成多个单表查询,然后根据绑定关系组装最终结果,后续我们通过自定义封装实现这个方案,按需定制你的关联绑定方案。至于为何要将关联查询拆解成单表查询,可以到<高性能MySQL>一书中了解分解关联查询的好处Diboot 轻代码开发框架

January 29, 2019 · 1 min · jiezi