(Rest风格API)Elasticsearch索引操作、映射配置、数据操作、查询操作

这篇具有很好参考价值的文章主要介绍了(Rest风格API)Elasticsearch索引操作、映射配置、数据操作、查询操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、索引操作

1.使用kibana创建索引

1.请求方式:put

2.请求路径:索引库名

3.请求参数:json格式

put book

{

  "settings":{

    "number_of_shards":1, /*分片数量*/

    "number_of_replicas":0 /*副本数量*/

  }

}

es 查询索引配置,elasticsearch,大数据

  1. number_of_shards 是指索引要做多少个分片,只能在创建索引时指定,后期无法修改。
  2. number_of_replicas 是指每个分片有多少个副本,后期可以动态修改
  3. 什么是分片?

ES中所存数据的文件块,也是数据的最小单元块。假如有2个分片,插入10条数据,默认,每个分片存5条。

2.查看索引:get请求

get 索引库名

es 查询索引配置,elasticsearch,大数据

我们可以使用*来查询所有索引库

es 查询索引配置,elasticsearch,大数据

3.删除索引:delete请求

delete 索引库名

es 查询索引配置,elasticsearch,大数据

二、映射配置

1.创建映射关系

PUT /索引库名/_mapping/类型名称
{
  "properties": {
    "字段名": {
      "type": "类型",
      "index": true,
      "store": true,
      "analyzer": "分词器"
    }
  }
}
  1. 类型名称:基本概念中所说的type,类似于数据库中的表
    1. 字段名:类似于数据库中的列名。
      1. type:类型,可以是text、keyword、long、short、date、integer、object等
      2. index:是否索引,默认为true
      3. store:是否存储,默认为false
      4. analyzer:分词器,这里的`ik_max_word`即使用ik分词器

实例

/* 1.先创建索引 */
put czxy

/* 2.创建映射关系 */
put czxy/_mapping/book
{
  "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "images": {
      "type": "keyword",
      "index": "false"
    },
    "price": {
      "type": "float"
    }
  }
}

es 查询索引配置,elasticsearch,大数据

2.查看映射关系

GET /索引库名/_mapping

es 查询索引配置,elasticsearch,大数据

3.字段属性详解

(1)type

  1. Elasticsearch中支持的数据类型非常丰富
    1. String类型,又分两种:
      1. text修饰字符串,默认进行分词,并生成索引。不能用来过滤、排序和聚合等操作。
      2. keyword修饰字符串,不会分词,不会建立索引。常常被用来过滤、排序和聚合。
    2. Numerical:数值类型,分两类
      1. 基本数据类型:long、interger、short、byte、double、float、half_float
      2. 浮点数的高精度类型:scaled_float
      3. 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。
    3. Date:日期类型
      1. elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。

(2)index

index影响字段的索引情况。

  1. true:字段会被索引,则可以用来进行搜索。默认值就是true
  2. false:字段不会被索引,不能用来搜索

index的默认值就是true,也就是说你不进行任何配置,所有字段都会被索引。

但是有些字段是我们不希望被索引的,比如商品的图片信息,就需要手动设置index为false。

(3)store

是否将数据进行额外存储。

Elasticsearch在创建文档索引时,会将文档中的原始数据备份,保存到一个叫做`_source`的属性中。而且我们可以通过过滤`_source`来选择哪些要显示,哪些不显示。

而如果设置store为true,就会在`_source`以外额外存储一份数据,多余,因此一般我们都会将store设置为false,事实上,**store的默认值就是false。**

三、数据操作

1.添加数据

语法:没有id

POST _index/_type/

{

  "属性": "值",

  ....

}

实例

POST czxy/book/
{
  "title": "标题",
  "price": 1234
}

es 查询索引配置,elasticsearch,大数据

2.添加或更新数据

语法:数据存在更新;如果不存在添加(指定id)

PUT _index/_type/_id

{

  "属性": "值",

  ....

}

实例

PUT czxy/book/b001

{

  "title": "标题123",

  "price": 1234

}

es 查询索引配置,elasticsearch,大数据

3.删除数据

语法:DELETE _index/_type/_id

实例:DELETE czxy/book/b001

四、查询操作

1.简单查询

指定id查询:GET czxy/book/b001

指定id查询,检索指定内容:GET czxy/book/b001?_source=title,price

2.高级查询

(1)准备数据

PUT czxy2
PUT czxy2/_mapping/user
{
  "properties": {
    "username": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "city": {
      "type": "keyword"
    },
    "age": {
      "type": "float"
    }
  }
}


PUT czxy2/user/u001
{
  "username": "张三",
  "city": "山西",
  "age": 18
}

PUT czxy2/user/u002
{
  "username": "张四",
  "city": "山东",
  "age": 20
}

PUT czxy2/user/u003
{
  "username": "张三三",
  "city": "山东",
  "age": 22
}

(2)查询所有(match_all:检索所有的数据)

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

(3)查询指定索引的所有

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

(4)查询部分结果

GET czxy2/_search
{
  "query": {
    "match_all": {}
  },
  "_source": ["username","city"]
}

(5)条件查询:匹配查询

GET czxy2/_search
{
  "query": {
    "match": {
      "username": "张三"
    }
  }
}

(6)条件查询:复合查询(多条件查询)

1.bool:多条件拼接

2.must:必须

3.must_not:不含

4.should:可有可无

GET czxy2/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "city": "山东"
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "age": 22
          }
        }
      ]
    }
  }
}

(7)should并集查询

注意:must和should同时存在的时候,should将会变得不起作用

GET czxy2/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "city": "山东"
          }
        },
        {
          "match": {
            "city": "山西"
          }
        }
      ]
    }
  }
}

(8)精确匹配

term 进行精确匹配(数据要求:数字、日期、布尔、not_analyzed的字符串(未分词))

GET czxy2/_search
{
  "query": {
    "term": {
      "age": 22
    }
  }
}

(9)范围查询

range 用于确定范围,gt 大于、lt 小于、gte大于等于、lte小于等于

GET czxy2/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 19,
        "lte": 21
      }
    }
  }
}

(10)排序

GET czxy2/_search
{
  "query": {
    "match_all": {}
  }, 
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

(11)分页查询

from 设置索引号,从0开始

size 设置每页个数文章来源地址https://www.toymoban.com/news/detail-858714.html

GET czxy2/_search
{
  "query": {
    "match_all": {}
  }, 
  "from": 0, 
  "size": 1
}

到了这里,关于(Rest风格API)Elasticsearch索引操作、映射配置、数据操作、查询操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elasticsearch Java REST Client 批量操作(Bulk API)

    上一篇:Elasticsearch Java REST Client Term Vectors API 下一篇:Elasticsearch Java REST Client Search APIs 查询 BulkRequest可用于使用单个请求执行多个索引、更新和/或删除操作。 它需要至少一个操作添加到 Bulk 请求中: multiGetAPI 在单个 http 请求中并行执行多个请求get 。 MultiGetRequest,添加 `M

    2024年02月11日
    浏览(50)
  • RESTful:理解REST架构风格、RESTful API

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

    2024年02月07日
    浏览(45)
  • 【ElasticSearch】ElasticSearch Java API的使用——常用索引、文档、查询操作(二)

    Elaticsearch ,简称为es,es是一个开源的 高扩展 的 分布式全文检索引擎 ,它可以近乎 实时的存储 、 检索数据; 本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的 目的

    2024年01月16日
    浏览(91)
  • Azure Machine Learning - 使用 REST API 创建 Azure AI 搜索索引

    本文介绍如何使用 Azure AI 搜索 REST AP和用于发送和接收请求的 REST 客户端以交互方式构建请求。 关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理

    2024年02月04日
    浏览(66)
  • Elasticsearch的索引和映射:动态映射

    Elasticsearch是一个基于分布式搜索和分析引擎,可以提供实时的、可扩展的、高性能的搜索功能。它是一个基于Lucene的搜索引擎,具有高度可扩展性和高性能。Elasticsearch支持多种数据类型,如文本、数字、日期等,并提供了丰富的查询功能。 在Elasticsearch中,数据是通过索引和

    2024年02月20日
    浏览(48)
  • Elasticsearch 常用 REST API 之集群APIs

    集群运行状况API返回关于集群运行状况的简单状态。您还可以使用API仅获取指定数据流和索引的健康状态。对于数据流,API 检索流的支持索引的运行状况。 集群健康状态为:绿色、黄色和红色。在shard级别,红色状态表示集群中没有分配特定的shard,黄色状态表示主shard已分配

    2024年02月02日
    浏览(44)
  • elasticsearch索引、文档、映射等概念

    1、文档(document) 文档是存储在Elasticsearch中的一个JSON格式的字符串。它就像在关系数据库中表的一行。每个存储在索引中的一个文档都有一个类型和一个ID,每个文档都是一个JSON对象,存储了零个或多个字段或键值对。原始的JSON文档被存储在一个叫做_source的字段中,当搜

    2023年04月17日
    浏览(46)
  • elasticSearch创建索引库、映射、文档

    创建索引库 使用postman或curl这样的工具创建 参数: number_of_shards:设置分片的数量,在集群中通常设置多个分片,表示一个索引库将拆分成多片分别存储不同的结点,提高了ES的处理能力和高可用性,入门程序使用单机环境,这里设置为1。 number_of_replicas:设置副本的数量,设

    2024年02月04日
    浏览(51)
  • 深入理解Elasticsearch的索引映射(mapping)

    当我们谈论Elasticsearch时,索引映射是一个核心概念,它定义了如何存储和检索数据。在Elasticsearch 7.6及更高版本中,映射提供了一系列强大的功能,使您能够精确地控制数据的结构和行为。本文将详细介绍映射的关键属性、用途以及如何正确设置和优化它。 在Elasticsearch中,

    2024年02月22日
    浏览(47)
  • 常规操作elasticSearch查看和索引(存储)数据

    常规操作elasticSearch: 对于elasticSearch的操作 通常用rest API完成 查看所有节点: 示例返回: 查看健康状态: 示例返回: 查看主节点: 示例返回: 查看所有索引(类比mysql查看所数据库): 示例返回: 保存一条数据 put 保存: 注意: put保存必须有id(唯一识别) 示例返回:

    2023年04月08日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包