`
kavy
  • 浏览: 888656 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Elasticsearch索引mapping的写入、查看与修改

 
阅读更多

https://www.2cto.com/kf/201607/530353.html

 

mapping的写入与查看

首先创建一个索引:

1
2
{"acknowledged":true}

现在只创建了一个索引,并没有设置mapping,查看一下索引mapping的内容:

1
2
3
4
5
6
{
  "productindex" : {
    "mappings" : { }
  }
}

可以看到mapping为空,我们只创建了一个索引,并没有进行mapping配置,mapping自然为空。
下面给productindex这个索引加一个type,type name为product,并设置mapping:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
    "product": {
            "properties": {
                "title": {
                    "type": "string",
                    "store": "yes"
                },
                "description": {
                    "type": "string",
                    "index": "not_analyzed"
                },
                "price": {
                    "type": "double"
                },
                "onSale": {
                    "type": "boolean"
                },
                "type": {
                    "type": "integer"
                },
                "createDate": {
                    "type": "date"
                }
            }
        }
  }
'
 
{
  "acknowledged" : true
}
</code>

上面的操作中,我们给productindex加了一个type,并写入了product的mapping信息,再次查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
  "productindex" : {
    "mappings" : {
      "product" : {
        "properties" : {
          "createDate" : {
            "type" : "date",
            "format" : "strict_date_optional_time||epoch_millis"
          },
          "description" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "onSale" : {
            "type" : "boolean"
          },
          "price" : {
            "type" : "double"
          },
          "title" : {
            "type" : "string",
            "store" : true
          },
          "type" : {
            "type" : "integer"
          }
        }
      }
    }
  }
}</code>

修改mapping

如果想给product新增一个字段,那么需要修改mapping,尝试一下:

1
2
3
4
5
6
7
8
9
10
11
12
     "product": {
                "properties": {
                     "amount":{
                        "type":"integer"
                   }
                }
            }
    }'
{
  "acknowledged" : true
}</code>

新增成功。
如果要修改一个字段的类型呢,比如onSale字段的类型为boolean,现在想要修改为string类型,尝试一下:

1
2
3
4
5
6
7
8
9
     "product": {
                "properties": {
                 "onSale":{
                    "type":"string"
               }
            }
        }
}'</code>

返回错误:

1
2
3
4
5
6
7
8
9
10
11
<code>{
  "error" : {
    "root_cause" : [ {
      "type" : "illegal_argument_exception",
      "reason" : "mapper [onSale] of different type, current_type [boolean], merged_type [string]"
    } ],
    "type" : "illegal_argument_exception",
    "reason" : "mapper [onSale] of different type, current_type [boolean], merged_type [string]"
  },
  "status" : 400
}</code>

为什么不能修改一个字段的type?原因是一个字段的类型修改以后,那么该字段的所有数据都需要重新索引。Elasticsearch底层使用的是lucene库,字段类型修改以后索引和搜索要涉及分词方式等操作,不允许修改类型在我看来是符合lucene机制的。

分享到:
评论

相关推荐

    Elasticsearch Demo 读取word内容写入到Es上并展示在WebFrom页面上

    这包括安装Elasticsearch、创建索引模板、设置映射(mapping),以确定字段类型和分析器等。对于文本内容,可能会使用`standard`或`ik`分词分析器,以便正确地分词和建立倒排索引。 然后是**数据写入Elasticsearch*...

    python elasticsearch从创建索引到写入数据的全过程

    在本文中,我们将深入探讨如何使用Python Elasticsearch 从创建索引到写入数据的完整过程。 首先,我们需要导入Elasticsearch模块并初始化连接。如下所示: ```python from elasticsearch import Elasticsearch es...

    elasticsearch-7.4.0-win64.rar

    - **配置文件**:修改`config/elasticsearch.yml`配置文件,设置端口、路径、内存等参数。 - **服务管理**:可以使用`elasticsearch-service.bat`脚本安装为系统服务,方便管理和启动。 4. **RESTful API**: - ...

    Elasticsearch 8.1.2 Linux版本

    3. **修改配置文件**:主要修改`elasticsearch.yml`,包括设置节点名称、集群名称、数据路径、内存分配等。 4. **启动服务**:使用`./bin/elasticsearch`启动Elasticsearch服务,或者通过systemd进行系统化管理。 ...

    Elasticsearch参考手册中文版高清

    Elasticsearch可与Kibana进行可视化分析,与Logstash实现数据管道,与Beats系列收集各种类型的数据。此外,还有大量插件供用户定制功能,如Anomaly Detection、Graph探索复杂关系等。 十、实战应用 了解Elastic...

    Elasticsearch技术解析与实战 ,朱林(完整板)

    3. **实时性**:Elasticsearch的写入操作是实时的,修改后的数据可以立即被查询到。 四、集群与节点 1. **集群(Cluster)**:由多个节点组成,共同存储和处理数据,实现数据的冗余和故障恢复。 2. **节点(Node...

    DataX技术之ES写入插件包

    总结来说,DataX ES写入插件是DataX与Elasticsearch之间的重要桥梁,它使得数据同步变得简单而高效。正确配置和使用这个插件,可以帮助你轻松地将结构化数据导入Elasticsearch,进而发挥出Elasticsearch在搜索和分析...

    elasticsearch5.x的java实现搜索

    Elasticsearch提供了Java REST客户端,使得开发者可以直接在Java应用中与ES服务器进行交互。这个客户端封装了HTTP通信,简化了请求构造和响应解析的过程。 3. **安装与配置**: 在开始编写Java代码前,需要在本地...

    ElasticSearch Mapping

    一、Mapping介绍 1)什么是Mapping ? 备注:7.0版本后ES,是通过自动识别字段type 2)字段类型 备注:相比其它存储,多了IP、坐标等特殊的格式 ...#写入文档,查看 Mapping PUT mapping_test/_doc/1 { firstName:

    elastic search 7.6.2 查询

    动态映射是指在文档写入 Elasticsearch 时,会根据文档字段自动识别类型,而静态映射是指事先定义好映射,包含文档的各个字段及其类型等。 三、文档 文档是用来搜索的数据,其中的每一条数据就是一个文档。 四、...

    elasticsearch head chrome

    这款工具能够帮助用户以图形化的方式直观地查看、管理和操作Elasticsearch集群,大大简化了Elasticsearch的日常维护工作。 Elasticsearch是一种基于Lucene的开源全文搜索引擎,具有分布式、实时、可扩展、高可用等...

    elasticsearch学习笔记

    Elasticsearch(以下简称ES)是当前最流行的搜索引擎之一,本文旨在通过对ES的基本操作和查询语法的介绍,帮助读者快速入门和精通ES。 批量操作 ES提供了多种批量操作方式,包括通过GET _mget、GET 索引/_mget、GET ...

    Elasticsearch总结.doc

    **一、Elasticsearch简介** Elasticsearch是一个开源的全文搜索引擎,基于Apache Lucene构建,用Java编写。它简化了全文检索的过程,提供了一套RESTful API,使得操作变得直观简单。Elasticsearch不仅是一个搜索...

    ElasticSearch技术文档

    本技术文档将深入探讨Elasticsearch的核心概念、架构、安装与配置、索引管理、查询与聚合、性能优化以及常见问题的解决。 **一、核心概念** 1. **节点(Node)**:Elasticsearch运行的单个实例称为节点,节点之间...

    elasticsearch.jar

    3. **配置文件**: 修改`elasticsearch.yml`配置文件,设置端口、路径、集群名称等参数。 4. **创建索引**: 使用curl命令或客户端工具发送HTTP请求创建索引。 5. **索引文档**: 将数据插入到索引中,同样通过...

    elasticsearch-head-chrome-master.zip

    在描述中提到,使用Elasticsearch Head可以方便地查看ES(Elasticsearch)集群的基本信息。这意味着我们可以利用这个插件来获取集群的状态、节点信息、索引详情、文档数量、搜索性能等关键数据。这对于开发者和运维...

    Elasticsearch-Head-Master

    **Elasticsearch-Head-Master** 是一个专为 Elasticsearch 设计的全文检索可视化工具,它提供了用户友好的界面,使得对 Elasticsearch 集群的管理、监控和数据操作变得更加直观和简便。Elasticsearch 是一个分布式、...

    Laravel开发-laravel-elasticsearch

    3. **刷新索引**:Elasticsearch有延迟写入机制,确保数据实时性,需要适时调用`refresh`方法。 4. **批量操作**:对于大量数据的索引和更新,使用批量操作可以大大提高性能。 总之,`laravel-elasticsearch`提供了...

    最新版windows elasticsearch-8.2.1-windows-x86_64.zip

    10. **监控和健康检查**:使用Kibana,用户可以直观地监控Elasticsearch集群的状态,包括节点性能、索引健康状况、搜索和写入速度等。 11. **版本兼容性**:请注意,不同版本的Elasticsearch之间可能存在兼容性问题...

    ElasticSearch面试题

    Mapping是Elasticsearch中定义字段数据类型的配置,它决定了字段的索引和分析方式。 8. **Elasticsearch如何处理大数据?** 通过分布式特性,数据被分割成多个分片,分散在不同节点上,同时利用副本分片提高容错...

Global site tag (gtag.js) - Google Analytics