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的索引做了一个简单的介绍,可以作为项目培训的课件使用
elasticsearch5.5.1的javaapi,含创建索引、mapping、查询、增加删除文档
elasticsearch索引流程,以前的笔记,希望有用
ElasticSearch映射生成器该工具允许在创建索引时为索引生成映射或设置。 使用注释描述定义的映射字段安装二进制文件部署在Maven Central上,您可以将工件导入到您的项目中: < dependency> < groupId>...
Elasticsearch Demo 读取word内容写入到Es上并展示在WebFrom页面上,简单查询根据关键字检索 并高亮显示。
elasticsearch索引安装后所需的网页插件,plugin-head插件,安装下载即可
资源方法有单个的增删改查,模糊查询分页 ,固定字段的模糊查询,所有属性字段的模糊查询
Elasticsearch索引恢复
分享一套完整版视频课程——分布式搜索引擎Elasticsearch开发实战基础篇 (ElasticSearch、ELK、搜索引擎、Lucene),本教程旨在带领大家进入搜索引擎领域...Elasticsearch索引和Mapping Elasticsearch搜索深入 Elastic
lasticsearch整合分词、创建索引、搜索例子,elasticsearch版本为1.0,索引数据从数据表中动态读取生成,有关键字高亮效果,查询分页 1 在dababase目录中导致相关的数据库文件,修改DBCOperation java文件数据库连接...
消费kafka数据,然后批量导入到Elasticsearch,本例子使用的kafka版本0.10,es版本是6.4,使用bulk方式批量导入到es中,也可以一条一条的导入,不过比较慢。 <groupId>org.elasticsearch <artifactId>elastic...
以脚本方式创建es 索引和结构映射. 莎士比亚在不经意间这样说过,本来无望的事,大胆尝试,往往能成功。我希望诸位也能好好地体会这句话。 一般来讲,我们都必须务必慎重的考虑考虑。 就我个人来说,我秃头了对我的...
该篇文章源码:Nodejs实现自动清理elasticsearch过期索引(日志清理)--学习笔记 http://blog.csdn.net/gzy11/article/details/55260615
arcgis elasticSearch es 矢量数据导入插件 数据建模 mapping indexsetting 字段映射 索引建模支持geoshape、shape,text索引支持keyword/ngram/edgeNgram/ikSmart,快速导入,兼容multipolygon,带洞,多面,使用时...
python elasticsearch从创建索引到写入数据 创建索引 from elasticsearch import Elasticsearch es = Elasticsearch('192.168.1.1:9200') mappings = { mappings: { type_doc_test: { #type_doc_test为doc_type ...
(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...
Flink以Elasticsearch7为sink 如何写入数据 。es有用户名密码。以代码的形式指导如何操作。并且具体的操作在压缩包中有说明文档。请仔细阅读
es索引模板
项目实战:Java一站式解决Hive内用Spark取数,新建ES索引,灌入数据,并且采用ES别名机制,实现ES数据更新的无缝更新,底层采用Spark计算框架,数据较快。