提问要多花一点心思哦

es5以上版本定义mapping字段双type问题

Elasticsearch | 作者 minsa | 发布于2019年01月22日 | 阅读数:1621

es默认的字段mapping如下:
"type": "text",
                  "fields": {
                     "keyword": {
                        "type": "keyword",
                        "ignore_above": 256
                     }
                  }
如何用java api中的XContentBuilder来创建
已邀请:

tacsklet - 公司有用到es

赞同来自:

其实和json的差不多,如下:
        client.admin().indices().prepareCreate("test01").addMapping(
"field01",XContentFactory.jsonBuilder().startObject()
.startObject("properties")
.startObject("field01").field("type", "text")
.startObject("fields")
.startObject("keyword").field("type","keyword")
.field("ignore_above",256)
.endObject()
.endObject()
.endObject()
.endObject()
.endObject()
).get();

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

当成json处理就好了,
"content": {
"analyzer": "ik_max_word",
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
},

要回复问题请先登录注册