首页 > 其他分享 >ElasticSearch 基础使用

ElasticSearch 基础使用

时间:2022-10-29 02:22:07浏览次数:55  
标签:search name GET age 基础 ElasticSearch 使用 test query

ElasticSearch使用说明

1. 索引 index,相当于数据库表Table

1.1 查看所有索引

GET _cat/indices?v

1.2 创建索引字段映射关系

PUT /test
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
      "age": {
        "type": "long"
      },
      "address": {
        "type": "keyword"
      },
      "birthday": {
        "type": "date",
        "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
      }
    }
  }
}

1.3 获取索引信息

# 获取所有信息
GET /test

# 获取设置信息
GET /test/_settings

# 获取映射关系
GET /test/_mappings

1.4 添加索引字段

POST /test/_mappings
{
  "properties": {
    "remark": {
      "type": "text"
    }
  }
}

1.5 删除索引

DELETE /test

2. 文档 doc,相当于数据行Row

2.1 添加数据

POST test/_doc
{
  "name": "dennis",
  "age": "18",
  "birthday": "2022-09-27 11:28:06",
  "address": "上海市杨浦区隆昌路666号"
}

2.2 修改数据(全量)

PUT test/_doc/<id>
{
  "name": "dennis1",
  "age": "188",
  "birthday": "2022-09-27 11:28:06",
  "address": "上海市杨浦区隆昌路888号"
}

2.3 修改数据(局部)

POST test/_update/<id>
{
  "doc": {
    "name": "上海",
    "age": "20"
  }
}

2.4 删除数据

DELETE /test/_doc/<id>

2.5 查询全部数据

GET test/_search
{
  "query": {
    "match_all": {}
  }
}

2.6 分词查询(text类型的字段才支持分词查询)

GET test/_search
{
  "query": {
    "match": {
      "name": "海"
    }
  }
}

2.7 精确查询

GET test/_search
{
  "query": {
    "match": {
      "name.keyword": "上海"
    }
  }
}

3. 复合查询

3.1 多条件查询(and)

GET test/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "name": {
              "value": "dennis"
            }
          }
        },
        {
          "query_string": {
            "default_field": "address",
            "query": "上海"
          }
        }
      ]
    }
  }
}

3.2 多条件查询(or)

GET test/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "name": {
              "value": "dennis"
            }
          }
        },
        {
          "query_string": {
            "default_field": "address",
            "query": "is"
          }
        }
      ]
    }
  }
}

3.3 分组查询

# 汇总条目
GET test/_search
{
  "aggs": {
    "age_group": {
      "terms": {
        "field": "age"
      }
    }
  },
  "size": 0
}

# 平均值
GET test/_search
{
  "aggs": {
    "age_group": {
      "avg": {
        "field": "age"
      }
    }
  },
  "size": 0
}

标签:search,name,GET,age,基础,ElasticSearch,使用,test,query
From: https://www.cnblogs.com/dennisdong/p/16837959.html

相关文章

  • 三种常用的Vue表单修饰符使用场景...
    vue的项目开发中须知道的三个vue表单修饰符(.lazy,.number,.trim)1,.lazy简单地说:我们在input输入框输入的时候,标签里的内容会实时变化,加了.lazy修饰符后,只有当鼠标光标离......
  • String基础: String两种创建对象方式的比较
    字符串常量在一般的语言中常量一旦声明则不可改变,在java中的字符串常量是以匿名对象来表示的javaz中字符串两种定义方法:StringstrA=newString("hello");(符合习惯......
  • 2022-2023-1 20221304 《计算机基础与程序设计》第九周学习总结
    2022-2023-120221304《计算机基础与程序设计》第九周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业......
  • 软考高项——信息基础基础知识
    1网络存储技术: 1.1网络标准与网络协议1.2网络存储技术1.3网络接入技术2.信息安全基础2.1安全策略2.2.信息安全技术基础 ......
  • angular入门篇8----Http模块的使用(2):使用接口
    angular入门篇8----Http模块的使用(2):使用接口1.创建Http服务1.1注册HttpClientModule模块我们需要在model.module.ts中注册HttpClientModule模块:\Store\src\app\mod......
  • java基础-注解
    以下为本人的学习笔记 1.认识Annotation  JDK1.5开始,java增加了对元数据(即类的组成单元数据)的支持,也就是(Annotation)注解,它是代码里做的特殊标记,这些标记可以在编译,类......
  • 记录第一次使用c++和汇编联合编译
    32位从Ida把目标函数扣出来toUapperprocneararg_0=dwordptr4pushesimovesi,[......
  • 通过SSH远程使用jupyter notebook
    1.背景一直苦恼于本地机器和服务器上都要配置一些机器学习方面的环境,今天花了点时间研究了下Jupternotebook远程访问服务器,所以记录一下。有些步骤非必须,这里尽量写清楚......
  • Python 基础语法
    一、字面量字面量:在代码中,被写下来的固定的值,称之为字面量数字(Number)字符串(String)列表(List):有序的可变序列元祖(Tuple):有序的不可变序列集合(Set):无序不重复集合字典(Dic......
  • Java基础语法与运算符
    Java基础语法数据类型8大基本数据类型整数类型byte1字节short2字节int4字节(整数默认数据类型)long8字节(赋值的字面量结尾要加l或L)浮点数类型float4字节(......