elasticsearch中的DSL语句操作

本文详细介绍了Elasticsearch中的关键字段,如索引设置、文档操作、查询语法(如MatchQuery、RangeQuery等)、分页排序、聚合、高亮和脚本等,展示了如何管理和执行复杂的查询操作以优化数据检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要

基本上这些,有需要的再补充:

创建索引时的关键字段

  • number_of_shards: 索引中主分片的数量,决定了数据分布的广度和横向扩展的能力。一旦设置好之后不能改变。
  • number_of_replicas: 每个主分片拥有的副本分片的数量,用于提供数据冗余和提高查询的并发能力。
  • mappings: 定义索引中字段名和字段数据类型的容器,可以看作是Elasticsearch中的“表结构”。

文档操作中的关键字段

  • _doc: 表示文档类型,在7.x之前的版本中Elasticsearch支持多种类型,但在7.x之后已被弃用,统一使用_doc。
  • _update: 用于更新现存文档的关键字。
  • doc: 在更新操作中,表示需要被更新的字段和它们新的值。

查询操作中的关键字段

  • query: 包含了所有查询条件的容器。
  • match: 一个全文搜索的查询,匹配指定字段中包含的文本。
  • term: 用于精确值匹配,不分析字段内容,用于不分词的字段或精确值查询。
  • bool: 用于组合多个查询子句,并可以通过must(必须匹配)、should(至少匹配一个)、must_not(必须不匹配)、filter(过滤且不计算得分)等来定义查询逻辑。
  • filter: 类似于查询,但它不计算得分而只是过滤数据,这通常有助于提高性能。
  • range: 用于匹配指定字段值处于特定范围的文档。
  • gte, lte: 分别代表范围查询中的“大于等于”和“小于等于”。

分页和排序中的关键字段

  • from: 用于分页,表示从哪个文档开始返回。
  • size: 也用于分页,表示返回多少个查询结果。
  • sort: 用于指定根据哪个字段以什么样的顺序来排序结果。

高亮查询的关键字段

  • highlight: 用于配置结果高亮显示的容器。
  • fields: 指定哪些字段需要高亮显示。

聚合操作的关键字段

  • aggs (或aggregations): 用于配置聚合操作的容器。
  • terms: 一个典型的桶(buckets)聚合,用来创建基于某个字段的不同值的桶。
  • avg, sum, min, max: 各种度量聚合类型,用来计算平均值、求和、最小值、最大值等。

每个字段和字段名在Elasticsearch查询DSL中都有特定的目的和行为。查询的编写需要对这些关键字段及其用法有深刻的了解。在构造查询时,这些字段以JSON对象的形式组合在一起,形成对Elasticsearch数据的精确和高效查询。

操作语句

索引操作:

1、创建索引 (Create an Index)

PUT /my_index               // 使用PUT动作创建一个名为"my_index"的索引
{
   
   
  "settings": {
   
                // "settings"类别用于设定索引相关的具体配置
    "number_of_shards": 1,      // "number_of_shards"指定了索引分片的数量
    "number_of_replicas": 1     // "number_of_replicas"指定了每个分片的副本数量
  },
  "mappings": {
   
                // "mappings"类别用于定义索引中字段的名称和类型
    "properties": {
   
                // "properties"定义了索引包含的字段及其数据类型
      "title": {
   
    "type": "text" },      // "title": 字段名,类型为"text",适用于全文搜索
      "date": {
   
    "type": "date" },       // "date": 字段名,类型为"date",存储日期
      "views": {
   
    "type": "integer" }    // "views": 字段名,类型为"integer",存储整数
    }
  }
}

2、查看索引 (Get Index Information)

GET /my_index               // 使用GET动作获取名为"my_index"的索引信息

3、更新索引设置 (Update Index Settings)

PUT /my_index/_settings     // 使用PUT动作更新名为"my_index"的索引设置
{
   
   
  "settings": {
   
   
    "number_of_replicas": 2  // "number_of_replicas"更新索引副本的数量为2
  }
}

4、删除索引 (Delete an Index)

DELETE /my_index            // 使用DELETE动作删除名为"my_index"的索引

5、删除索引中的所有数据(Delete By Query)

POST /my_index/_delete_by_query  // 使用POST动作删除满足查询条件的索引内数据
{
   
   
  "query": {
   
                         // "query"定义删除操作的查询条件
    "match_all": {
   
   }               // "match_all"查询匹配索引中的所有文档,即删除所有数据
  }
}

6、关闭索引 (Close an Index)

POST /my_index/_close           // 使用POST动作关闭名为"my_index"的索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值