Elasticsearch(019):es常见的字段映射类型之数组类型(arrays)

这篇具有很好参考价值的文章主要介绍了Elasticsearch(019):es常见的字段映射类型之数组类型(arrays)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Elasticsearch中,没有专用的array数据类型。默认情况下,任何字段都可以包含零个或多个值,但是,数组中的所有值都必须具有相同的数据类型。

这一点是区别于nested的,nested指的对象的集合。而arrays则是单一类型的数组集合而已。

此外,不需要专门的类型类定义数组类型。

例如:

  • 字符串数组 ["one", "two"]
  • 整数数组 [ 1,2]
  • 数组的数组:[ 1[ 2,3]],这是相当于[ 1,2,3]

动态添加字段时,数组中的第一个值确定field type。所有后续值必须具有相同的数据类型,或者至少必须能够将后续值强制转换为相同的数据类型。像[1, 3, "some word"] 不支持混合使用。

数组类型映射建立示例如下。

PUT example
PUT example/docs/_mapping
{
    "properties": {
        "id":{"type": "long"},
        "name": {"type": "text"},
        "age":{"type":"integer"},
        "hobby": {"type": "text"}
    }
}

注意:数组字段的定义,不是array哦。数组类型不需要单独设置,建立mapping映射时只需成单个字段一样,在插入的数据时候,插入多个值时,该字段就会自动变成数组类型的。

数组类型的对象添加示例如下。

PUT example/docs/1 
{
    "id": 111,
    "name":"张三",
    "age":22,
    "hobby":["篮球","摔跤"]
}
PUT example/docs/2 
{
    "id": 222,
    "name":"张三2",
    "age":21,
    "hobby":["篮球222","摔跤222"]
}

数组类型的搜索示例如下。文章来源地址https://www.toymoban.com/news/detail-536718.html

#搜索爱好有篮球的
GET example/docs/_search
{
    "query": {
        "match": {
            "hobby": "篮球"
        }
    }
}
# 最后搜出来2个结果


GET example/docs/_search
{
    "query": {
        "match": {
            "hobby": "22"
        }
    }
}
# 最后搜出来1个结果

到了这里,关于Elasticsearch(019):es常见的字段映射类型之数组类型(arrays)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Elasticsearch学习笔记二】es的Mapping字段映射、Mapping字段常用类型、Mapping映射的创建、查看和更新、es数据迁移、ik分词器

    目录 1、Mapping字段映射概述 2、Mapping字段常用类型 3、映射中对时间类型详解 1)采取自动映射器来映射 2)手工映射提前指定日期类型 4、ES的keyword的属性ignore_above 5、Mapping映射的查看和创建 1)查看mapping信息:GET 索引名/_mapping 2)创建映射:PUT /索引名 3) 查看所有索引映

    2024年01月20日
    浏览(61)
  • Elasticsearch映射与字段类型

    Elasticsearch映射与字段类型 Elasticsearch是一个分布式、实时的搜索和分析引擎,基于Lucene库构建。它可以快速、高效地索引、搜索和分析大量数据。在Elasticsearch中,数据以文档的形式存储,每个文档都有一个唯一的ID。文档可以存储在一个索引中,索引可以存储在一个集群中。

    2024年02月22日
    浏览(62)
  • 5.elasticsearch映射操作(创建|修改|删除)及字段类型

    1.本文介绍了 elasticsearch 映射的操作方式,包括映射创建,修改,删除; 2.映射定义: 映射是定义文档及其包含的字段如何存储和索引的过程 。 例如,使用映射来定义: ① 哪些字符串字段应该被作为全文检索字段; ② 哪些字段包含 数字,日期,及地理位置; ③ 日期格式

    2023年04月12日
    浏览(65)
  • es elasticsearch 八 mapping 映射 、复杂数据类型

    目录 Mapping 映射 复杂数据类型 Mapping 映射 精确匹配 必须和对应字段值安全一致才可查出 全文检索 缩写搜索全程、格式转换 大小写 同义词 全文检索核心原理 分词,初步的倒排索引的建立 重建倒排索引 时态转换、重复数的转换、同义词的转换、大小写的转换 分词器 analy

    2024年02月07日
    浏览(57)
  • es查询nested字段类型数组长度来判断是否包含多个值

    使用es时经常会碰到查询数组格式的字段是否有多个值的情况,总结一下。 一、字段类型为keywork时 当字段类型为keyword时(创建索引后,添加的第一条数据id字段格式为数组格式,便会导致后续的数据都是数组),查询id字段有多值时用以下查询语句: 二、字段类型为nested类型时

    2024年02月11日
    浏览(66)
  • ES映射操作 已创建的ES索引 增加映射字段(类似DB库增加给表增加字段)一样

    ES已存在的索引下添加映射 解释如下:给ticketing_order_info的索引,增加映射字段verificationCodeState,字段类型为integer 实现: PUT /ticketing_order_info/_mapping/ {     \\\"properties\\\": {         \\\"verificationCodeState\\\": {             \\\"type\\\": \\\"integer\\\"         }     } } PUT /ticketing_order_i

    2024年02月16日
    浏览(58)
  • es字段映射

    PUT _template/metric_datatest {     \\\"index_patterns\\\": [\\\"flink-*\\\"],     \\\"aliases\\\": {             \\\"test-all\\\": {}                  },     \\\"settings\\\": {         \\\"number_of_shards\\\": 3,           \\\"number_of_replicas\\\": 1      },     \\\"mappings\\\": {         \\\"properties\\\": {             \\\"r_value\\\": {                 \\\"t

    2024年02月10日
    浏览(31)
  • Rust 原始类型之数组array内置方法

    目录 数组 array 声明 访问 引用 Reference 切片 Slice 方法 题目实例 在 Rust 中,数组是一种固定大小的数据结构,用于存储具有相同数据类型的元素的有序集合。 “固定大小”是指数组中的元素的类型和数量确定,也就确定了整数数组的大小。 数组可以在声明时指定长度,声明

    2024年02月10日
    浏览(50)
  • es如何修改字段类型

    演示:如下是一个包含date字段的索引ttteset-000001,接下来我们将其字段类型改为text类型

    2024年02月11日
    浏览(51)
  • ES修改字段类型详解

    一、需求概述 ES修改字段类型是指在已有的索引中,通过特定的操作方式将某个字段的类型修改为其它类型。当ES在建立索引的时候,已经确定好了每个字段的类型,而如果在建立后发现类型不符需求,就需要修改字段类型。 二、修改字段类型的原因 有以下几种情况会导致修

    2024年02月05日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包