美文网首页
42、初识搜索引擎_mapping复杂数据类型以及object类

42、初识搜索引擎_mapping复杂数据类型以及object类

作者: 拉提娜的爸爸 | 来源:发表于2020-01-08 11:54 被阅读0次

1、multivalue field

{ "tags": [ "tag1", "tag2" ]}

建立索引时与string是一样的,数据类型不能混

2、empty field

null,[],[null]

3、object field

举例

有这样一条document数据,它在底层中的结构是怎样的呢?

PUT /company/employee/1
{
  "address": {
    "country": "china",
    "province": "guangdong",
    "city": "guangzhou"
  },
  "name": "jack",
  "age": 27,
  "join_date": "2017-01-01"
}

(1)查看mapping数据类型

GET /company/_mapping/employee
-------------------------------结果-------------------------------
{
  "company": {
    "mappings": {
      "employee": {
        "properties": {
          "address": {
            "properties": {
              "city": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "country": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "province": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          },
          "age": {
            "type": "long"
          },
          "join_date": {
            "type": "date"
          },
          "name": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

(2)数据底层结构解释

其中,field参数中address就是object类型。
这条document底层的结构

{
  "address": {
    "country": "china",
    "province": "guangdong",
    "city": "guangzhou"
  },
  "name": "jack",
  "age": 27,
  "join_date": "2017-01-01"
}
-------------------------底层的结构如下-------------------------
{
    "name":              [jack],
    "age":               [27],
    "join_date":         [2017-01-01],
    "address.country":   [china],
    "address.province":  [guangdong],
    "address.city":      [guangzhou]
}

(3)更复杂的object类型底层结构

如:

{
    "authors": [
        { "age": 26, "name": "Jack White"},
        { "age": 55, "name": "Tom Jones"},
        { "age": 39, "name": "Kitty Smith"}
    ]
}
-------------------------底层的结构如下-------------------------
{
    "authors.age":    [26, 55, 39],
    "authors.name":   [jack, white, tom, jones, kitty, smith]
}

相关文章

网友评论

      本文标题:42、初识搜索引擎_mapping复杂数据类型以及object类

      本文链接:https://www.haomeiwen.com/subject/uqajactx.html