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模板网!

原文地址:https://blog.csdn.net/web15185420056/article/details/126359636

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包