ElasticSearch篇——Restful风格详解以及常见的命令,涵盖_cat命令查看ES默认数据、索引和文档的增删改查以及复杂搜索,超详细、超全面、超细节!

这篇具有很好参考价值的文章主要介绍了ElasticSearch篇——Restful风格详解以及常见的命令,涵盖_cat命令查看ES默认数据、索引和文档的增删改查以及复杂搜索,超详细、超全面、超细节!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ES的RestFul风格

一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要是用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更加简洁,更有层次,更易于实现缓存等机制。

一、基本Rest命令说明elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

_cat命令查看ES默认数据

获得ES健康值

1、命令

GET _cat/health

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

对应的就是head可视化界面的下面的信息(换句话说,可视化工具也是不断发送这个health命令,来回显当前数据库的健康值!)
elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

查看当前ES下的索引信息

1、命令

GET _cat/indices?v

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

索引和文档的增删改查

创建索引并设置文档字段类型

1、命令
给索引(数据库表),给表中的字段设置类型

PUT /索引
{
    "mapping": {
        "properties": {
            "name": {
                "type": "text"
            },
            "age": {
                "type": "long"
            },
            "birthday": {
                "type": "date"
            }
        }
    }
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

2、在head可视化工具中查看

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

3、获得test01的信息
可以通过GET请求,获得这个索引中的信息
(1)命令

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

(2)响应

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

4、拓展:如果我们没有给我们的索引中的字段设置类型,那么ES会默认给相关的字段设置类型!
之前创建guihui 索引的时候没设置字段的类型,我们通过GET命令查看一下字段的默认类型

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

创建索引/文档

创建一个索引、类型和文档,以及文档中的内容
(1)在kibana开发者工具中输入命令

PUT 索引名/类型(快去掉了)/文档id
{请求体}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

第一次这个result就是created创建的意思

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

(2)进入到head可视化界面中,可以查看当前数据是否创建成功!

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

修改索引/文档数据

方式一:(这种方式存在弊端,如果第二次更新的内容少于原本存在的数据,那么就会丢失掉那部分数据!所以慎用!
直接使用PUT的方式,将原来的数据进行覆盖
1、当前索引中的文档数据
elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

2、直接通过PUT命令覆盖
版本号version会增加,现在变成了2;当前的状态变成了update

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎


3、查看guohui索引的数据
更新成了李四等新数据
elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

方式二:(更推荐使用这种方式)
通过POST命令来更新索引中的文档(行数据)
1、命令
更新命令多了一个"doc"

POST /索引/类型/文档id/_update
{
    "doc": {
        "name": "詹姆斯",
        "age": 99
    }
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

删除索引/者文档

删除文档
1、命令

DELETE 索引/类型/文档Id

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

2、查看head可视化界面

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

删除索引
1、命令

DELETE 索引

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

2、去可视化界面查看
guihui索引(数据库)被删除了!

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

查询索引数据/某条文档(含条件查询)

索引test01数据
elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

一、查询索引全部数据
1、命令

PUT 索引/类型/_search

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

二、查询文档通过文档的id
1、命令

GET 索引/类型/文档id

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

三、条件查询
1、命令
q代表着query的意思

GET 索引/类型/_search?q=name:李四

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

复杂搜索(复杂查询)重点!

下面所讲的复杂查询由开头至结尾顺序学习,由浅入深

以下的数据均来自于查询该索引

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

一、带参数的查询
1.命令

GET test01/_search
{
  "query": {
    "match": {  (match表示精确匹配,这里还可以换成其他的参数)
      "name": "张三"
    }
  }
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

如果索引中存在某字段相似的,那么查询出来的结果还会有一个匹配度的数值,将来可能会按照分值来排序
将来:
hits会对应我们Java中的对象
total:查询的结果数

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

二、过滤结果
1.命令
_source命令:是过滤搜索结果的关键字
相当于MySQL 中的select 字段 from table where 判断条件
 

GET test01/_search
{
  "query": {
    "match": {
      "name": "王五"
    }
  },
  "_source":["name","age"]
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

三、根据某个字段进行排序
类似于MySQL的order by ...desc/asc
1、命令
sort命令,下面的示例是查询name等于王五的数据,并且按照age进行升序排序

GET test01/_search
{
  "query": {
    "match": {
      "name": "王五"
    }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ]
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

四、分页查询
相当于SQL中的Limit
1、命令
from 和 size 命令,下面的实例是从第0个数据开始(和我们之前学习的分页的数据结果是一样的,起始都是从0开始),一页展示1条数据,所以和上面的搜索出的两条数据是不同的,现在是只展示了一条数据

GET test01/_search
{
  "query": {
    "match": {
      "name": "王五"
    }
  },
  "sort": [
    {
      "age": {
        "order": "asc"
      }
    }
  ],
  "from":0,
  "size":1
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

五、布尔实现多条件的精确查询
must可以精确的匹配对应的数据,相当于SQL中的“and”,所有的条件都满足
1、命令

GET test01/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "王五"
          }
        },
        {
          "match": {
            "age": "11"
          }
        }
      ]
    }
  }
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

六、布尔实现or类型查询
should关键字,相当于SQL 中的“or”,后面的条件满足其一即可被查询出来
1、命令

GET test01/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "name": "王五"
          }
        },
        {
          "match": {
            "age": "11"
          }
        }
      ]
    }
  }
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

七、布尔值查询-类似于SQL中的“not”
1、命令
must_not
下面的实例是查询年龄不是11岁的人

GET test01/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "age": "11"
          }
        }
      ]
    }
  }
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

八、在查询的时候,加过滤器
filter关键字,就是在查询的时候加上范围的过滤
gte: great than equals表示大于等于
lte: less than equals表示小于等于
去掉e就把等于去掉了

1、命令

GET test01/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "王五"
          }
        }
      ],
       "filter": {
        "range": {
          "age": {
            "gt": 10,
            "lt": 20
          }
        }
      }
    }
  }
}

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

九、根据字段中的某个数据进行查询
可以精确的匹配到某条数据中包含某个数据,并且还能返回查询的结果的分值
1、命令
通过"match"关键字,里面输入索引中字段的名称和需要匹配的数据,ES的优势在于,想要匹配多个数据,直接用空格隔开即可,另外查询的结果还会对这些数据进行分值的评定,将来还便于我们根据分值来做排序

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

十、精确查询
精确查询是通过term关键字来实现的,他的底层是通过直接查询倒排索引,所以效率更高!
关于分词的解释:
(1)term:直接查询精确的
(2)match:会使用分词器(会先分析文档,然后通过分析的文档进行查询!)
所以综上所述,term的查询更高效
补充:
如果类型是text类型,那么是可以被分词器解析的;如果是keyword类型的,是不能被分词器解析,换句话说,如果我们索引中的某个字段的类型设置的是keyword类型,那么我想使用match或者term来查询这个字段匹配的,他只能查询出完全匹配的数据来,其他的数据差一个字符都不能被查询出来!
elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

十一、高亮查询(重点)
重点就是highlight关键字

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

elasticsearch rest 多条件查询,ElasticSearch,elasticsearch,restful,大数据,全文检索,搜索引擎

至此,关于ES详细的操作查询命令介绍完毕,尤其是高亮查询在将来的开发中会经常用到,比如日志定位等等。

后续还会持续更新,敬请期待~~~文章来源地址https://www.toymoban.com/news/detail-795510.html

到了这里,关于ElasticSearch篇——Restful风格详解以及常见的命令,涵盖_cat命令查看ES默认数据、索引和文档的增删改查以及复杂搜索,超详细、超全面、超细节!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RESTful:理解REST架构风格、RESTful API

    一、REST架构风格 REST(英文Representational State Transfer)是一种基于客户端和服务器的架构风格,用于构建可伸缩、可维护的Web服务。REST的核心思想是,将Web应用程序的功能作为资源来表示,使用统一的标识符(URI)来对这些资源进行操作,并通过HTTP协议(GET、POST、PUT、DELET

    2024年02月07日
    浏览(45)
  • 【SpringMVC】| RESTful架构风格、RESTful案例(CRUD)

    目录    RESTful架构风格 1. RESTful简介 2. RESTful的实现 3. HiddenHttpMethodFilter RESTful案例(CRUD) 1. 准备工作 2. 功能清单 列表功能(显示数据)  删除数据(难点) 添加数据  更新数据 图书推荐:用ChatGPT与VBA一键搞定Excel REST: Re presentational S tate T ransfer, 表现层资源状态转移

    2024年02月08日
    浏览(48)
  • restful风格接口命名规范

    (一)rest 1.概念 REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。 可理解为: URL定位资源,用H

    2024年02月02日
    浏览(43)
  • Restful风格

    准备工作 第一步: 创建Maven工程然后手动添加 web模块 第二步: 在 pom.xml 文件中指定Maven工程的打包方式 war 第三步: 引入依赖,由于Maven的传递性,我们不必将所有需要的包全部配置依赖,只需要配置最顶端的依赖,其他依赖靠传递性导入 第四步: 在web.xml文件中配置SpringMVC的前端控制

    2024年02月07日
    浏览(40)
  • Restful风格笔记

    @RestController注解 在类上添加@RestController可以默认类中的所有方法都带有@ResponseBody注解,可以省去一个个添加的麻烦。 路径变量 @PathVariable注解可以让控制方法接收前端传来的请求中的路径变量。例如下面这个例子,无论前端传来1还是100这个id都能被控制方法中的requestId这个

    2024年02月10日
    浏览(42)
  • RESTful 风格是指什么

    RESTful( Representational State Transfer )是一种基于 HTTP 协议的软件架构风格,用于设计网络应用程序的接口。它的设计理念是利用 HTTP 协议中的方法(如 GET、POST、PUT、DELETE 等)来对资源进行 CRUD ,使得客户端和服务器之间的通信变得简单、灵活和可扩展。 下面是 RESTful 风格的

    2024年02月21日
    浏览(44)
  • 【SpringBoot】| 接口架构风格—RESTful

    目录   一:接口架构风格—RESTful 1. 认识RESTful 2. RESTful 的注解 1. 认识RESTful (1)接口 ①接口: API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 用来提供应用程序与开发人员基于某软件

    2024年02月13日
    浏览(40)
  • SpringMVC-Restful风格

    rest: 表现层(视图view及控制层controller)资源状态转移 具体说就是http协议里面,四个表示操作方式的动词: GET POST PUT DELETE 它们分别对应四种基本操作: GET 用来表示获取资源, POST用来新建资源, PUT用来更新资源,DELETE 用来删除资源. REST风格提倡URL地址使用统一的风格设计,从前到后各

    2024年01月16日
    浏览(43)
  • 课程8:RESTful风格API接口

    2023年05月11日
    浏览(45)
  • SpringMVC-RESTful架构风格

    目录 RESTful架构风格 1、RESTful概述 2、RESTful的六大原则 3、RESTful的实现 4、HiddenHttpMethodFilter RESTful风格的CRUD 1、环境搭建 2、功能需求 3、功能:访问首页 4、功能:查询所有数据 5、功能:删除一条数据 6、功能:添加一条数据 SpringMVC处理静态资源 1、tomcat自己的web.xml 2、关于

    2024年02月01日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包