https://www.2cto.com/kf/201607/530353.html
mapping的写入与查看
首先创建一个索引:
1
2
|
curl -XPOST "https://127.0.0.1:9200/productindex"
{ "acknowledged" : true }
|
现在只创建了一个索引,并没有设置mapping,查看一下索引mapping的内容:
1
2
3
4
5
6
|
curl -XGET "https://127.0.0.1:9200/productindex/_mapping?pretty"
{ "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
|
<code>curl -XGET "https://127.0.0.1:9200/productindex/_mapping?pretty"
{ "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、创建索引模板、设置映射(mapping),以确定字段类型和分析器等。对于文本内容,可能会使用`standard`或`ik`分词分析器,以便正确地分词和建立倒排索引。 然后是**数据写入Elasticsearch*...
在本文中,我们将深入探讨如何使用Python Elasticsearch 从创建索引到写入数据的完整过程。 首先,我们需要导入Elasticsearch模块并初始化连接。如下所示: ```python from elasticsearch import Elasticsearch es...
- **配置文件**:修改`config/elasticsearch.yml`配置文件,设置端口、路径、内存等参数。 - **服务管理**:可以使用`elasticsearch-service.bat`脚本安装为系统服务,方便管理和启动。 4. **RESTful API**: - ...
3. **修改配置文件**:主要修改`elasticsearch.yml`,包括设置节点名称、集群名称、数据路径、内存分配等。 4. **启动服务**:使用`./bin/elasticsearch`启动Elasticsearch服务,或者通过systemd进行系统化管理。 ...
Elasticsearch可与Kibana进行可视化分析,与Logstash实现数据管道,与Beats系列收集各种类型的数据。此外,还有大量插件供用户定制功能,如Anomaly Detection、Graph探索复杂关系等。 十、实战应用 了解Elastic...
3. **实时性**:Elasticsearch的写入操作是实时的,修改后的数据可以立即被查询到。 四、集群与节点 1. **集群(Cluster)**:由多个节点组成,共同存储和处理数据,实现数据的冗余和故障恢复。 2. **节点(Node...
总结来说,DataX ES写入插件是DataX与Elasticsearch之间的重要桥梁,它使得数据同步变得简单而高效。正确配置和使用这个插件,可以帮助你轻松地将结构化数据导入Elasticsearch,进而发挥出Elasticsearch在搜索和分析...
Elasticsearch提供了Java REST客户端,使得开发者可以直接在Java应用中与ES服务器进行交互。这个客户端封装了HTTP通信,简化了请求构造和响应解析的过程。 3. **安装与配置**: 在开始编写Java代码前,需要在本地...
一、Mapping介绍 1)什么是Mapping ? 备注:7.0版本后ES,是通过自动识别字段type 2)字段类型 备注:相比其它存储,多了IP、坐标等特殊的格式 ...#写入文档,查看 Mapping PUT mapping_test/_doc/1 { firstName:
动态映射是指在文档写入 Elasticsearch 时,会根据文档字段自动识别类型,而静态映射是指事先定义好映射,包含文档的各个字段及其类型等。 三、文档 文档是用来搜索的数据,其中的每一条数据就是一个文档。 四、...
这款工具能够帮助用户以图形化的方式直观地查看、管理和操作Elasticsearch集群,大大简化了Elasticsearch的日常维护工作。 Elasticsearch是一种基于Lucene的开源全文搜索引擎,具有分布式、实时、可扩展、高可用等...
Elasticsearch(以下简称ES)是当前最流行的搜索引擎之一,本文旨在通过对ES的基本操作和查询语法的介绍,帮助读者快速入门和精通ES。 批量操作 ES提供了多种批量操作方式,包括通过GET _mget、GET 索引/_mget、GET ...
**一、Elasticsearch简介** Elasticsearch是一个开源的全文搜索引擎,基于Apache Lucene构建,用Java编写。它简化了全文检索的过程,提供了一套RESTful API,使得操作变得直观简单。Elasticsearch不仅是一个搜索...
本技术文档将深入探讨Elasticsearch的核心概念、架构、安装与配置、索引管理、查询与聚合、性能优化以及常见问题的解决。 **一、核心概念** 1. **节点(Node)**:Elasticsearch运行的单个实例称为节点,节点之间...
3. **配置文件**: 修改`elasticsearch.yml`配置文件,设置端口、路径、集群名称等参数。 4. **创建索引**: 使用curl命令或客户端工具发送HTTP请求创建索引。 5. **索引文档**: 将数据插入到索引中,同样通过...
在描述中提到,使用Elasticsearch Head可以方便地查看ES(Elasticsearch)集群的基本信息。这意味着我们可以利用这个插件来获取集群的状态、节点信息、索引详情、文档数量、搜索性能等关键数据。这对于开发者和运维...
**Elasticsearch-Head-Master** 是一个专为 Elasticsearch 设计的全文检索可视化工具,它提供了用户友好的界面,使得对 Elasticsearch 集群的管理、监控和数据操作变得更加直观和简便。Elasticsearch 是一个分布式、...
3. **刷新索引**:Elasticsearch有延迟写入机制,确保数据实时性,需要适时调用`refresh`方法。 4. **批量操作**:对于大量数据的索引和更新,使用批量操作可以大大提高性能。 总之,`laravel-elasticsearch`提供了...
10. **监控和健康检查**:使用Kibana,用户可以直观地监控Elasticsearch集群的状态,包括节点性能、索引健康状况、搜索和写入速度等。 11. **版本兼容性**:请注意,不同版本的Elasticsearch之间可能存在兼容性问题...
Mapping是Elasticsearch中定义字段数据类型的配置,它决定了字段的索引和分析方式。 8. **Elasticsearch如何处理大数据?** 通过分布式特性,数据被分割成多个分片,分散在不同节点上,同时利用副本分片提高容错...