ElasticSearch 7.x 索引创建mapping时指定type

ElasticSearch 7.x 索引创建mapping

问题场景:

  • ElasticSearch 6.x 版本支持创建mapping是直接指定type;
  • ElasticSearch 7.x 版本不支持创建mapping是直接指定type,而是提供一个默认的type:_doc;
  • 如果想要在 ElasticSearch 7.x版本中创建mapping并指定type,则需要在URL后面添加参数:include_type_name=true;【注:这个参数默认是:include_type_name=false】

字段类型:(部分基础字段类型)

//简单数据类型:string、long、integer、short、byte、double、scaled_float、float、date、boolean、binary、keyword、text
//复杂数据类型:Array、object、nested
//地理位置类型:地理坐标类型(Geo-point datatype): geo_point 用于经纬度坐标;地理坐标类型(Geo-point datatype): geo_point 用于经纬度坐标;

1、创建默认type的mapping:

PUT  http://ip:port/索引名

{
    "mappings": {
            "properties": {
                "Field名" : {
                    "type" : "具体的字段数据类型"  
                }
            }
        }
}

2、创建自定义type的mapping:

PUT  http://ip:port/索引名?include_type_name=true
{
    "mappings": {
        "类型" : {   //----类型
            "properties": {
                "Field名" : {
                    "type" : "具体的字段数据类型"  
                }
            }
        }
    }
}

3、查看mapping:

GET http://ip:port/索引名/类型/_mapping
好的,我可以帮你回答这个问题。 使用Java客户端创建索引和映射,需要连接Elasticsearch服务器,并使用Elasticsearch Java API进行操作。以下是一个简单的示例代码,用于创建索引和映射: ```java import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.common.xcontent.json.JsonXContent; import java.io.IOException; public class ElasticSearchIndexAndMapping { private static final String INDEX_NAME = "example_index"; private static final String TYPE_NAME = "example_type"; public static void main(String[] args) throws IOException { RestHighLevelClient client = new RestHighLevelClient(/* your Elasticsearch client configuration */); // Create index request CreateIndexRequest request = new CreateIndexRequest(INDEX_NAME); // Create index mapping XContentBuilder builder = XContentFactory.jsonBuilder(); builder.startObject(); { builder.startObject("properties"); { builder.startObject("field1"); { builder.field("type", "text"); } builder.endObject(); } builder.endObject(); } builder.endObject(); // Put mapping request PutMappingRequest mappingRequest = new PutMappingRequest(INDEX_NAME); mappingRequest.type(TYPE_NAME); mappingRequest.source(builder); // Execute requests client.indices().create(request, RequestOptions.DEFAULT); client.indices().putMapping(mappingRequest, RequestOptions.DEFAULT); client.close(); } } ``` 在此示例中,我们使用了 `CreateIndexRequest` 和 `PutMappingRequest` 类来创建索引和映射。我们首先创建了一个名为 `example_index` 的索引,并指定了一个名为 `example_type` 的类型。然后,我们使用 `XContentBuilder` 来构建映射。在此示例中,我们只创建了一个名为 `field1` 的字段,并将其类型设置为 `text`。最后,我们使用 `RestHighLevelClient` 来执行创建索引和映射的请求。 请注意,以上示例仅表示如何创建索引和映射。如果您需要更详细的功能,例如添加文档或查询索引,请查看Elasticsearch Java API文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值