Elasticsearch之文档、映射详解

目录

文档

文档的形式——Json形式

元数据(metadata)

判断文档是否存在

映射

类型说明

创建映射 

查看映射


文档

扫描二维码关注公众号,回复: 11033015 查看本文章

文档的形式——Json形式

其中,card是一个复杂对象,嵌套的Card对象。

{
  "_index": "haoke",
  "_type": "user",
  "_id": "1005",
  "_version": 1,
  "_score": 1,
  "_source": {
    "id": 1005,
    "name": "孙七",
    "age": 37,
    "sex": "女",
    "card": {
      "card_number": "123456789"
   }
 }
}

元数据(metadata)

一个文档不只有数据。它还包含了元数据(metadata)——关于文档的信息。三个必须的元数据节点是:

这里Id需要尤为注意

id仅仅是一个字符串它与 _index 和 _type 组合时,就可以在Elasticsearch中唯一标识一个文档。当创建一个
文档,你可以自定义 _id ,也可以让Elasticsearch帮你自动生成(32位长度)。

判断文档是否存在

如果我们只需要判断文档是否存在,而不是查询文档内容,那么可以这样

映射

映射是定义文档的过程,文档包含哪些字段,这些字段是否保存,是否索引,是否分词等等

类型说明

前面我们创建的索引以及插入文档,都是由Elasticsearch进行自动判断类型,有些时候我们是需要进行明确字段类型的,否则,自动判断的类型和实际需求是不相符的。

 

创建映射 

  • 语法
PUT /索引库名/_mapping/类型名称
{
  "properties": {
    "字段名": {
      "type": "类型",
      "index": true,
      "store": true,
      "analyzer": "分词器"
    }
  }
}
  • 含义

类型名称:就是前面将的type的概念,类似于数据库中的不同表 字段名:任意填写 ,可以指定许多属性,例如:

type:类型,可以是text、long、short、date、integer、object等

index:是否索引,默认为true

store:是否存储,默认为false

analyzer:分词器,这里的ik_max_word即使用ik分词器

  • 请求结果
PUT heima/_mapping/goods
{
  "properties": {
    "title": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "images": {
      "type": "keyword",
      "index": "false"
    },
    "price": {
      "type": "float"
    }
  }
}
  • 响应结果
{
  "acknowledged": true
}

查看映射

       语法 

GET /索引库名/_mapping

       示例

GET /heima/_mapping

       响应 

{
  "heima": {
    "mappings": {
      "goods": {
        "properties": {
          "images": {
            "type": "keyword",
            "index": false
          },
          "price": {
            "type": "float"
          },
          "title": {
            "type": "text",
            "analyzer": "ik_max_word"
          }
        }
      }
    }
  }
}
发布了568 篇原创文章 · 获赞 180 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/105515502