ElasticSearch-Java Api 创建索引 并加索引结构

一、ES  maven 依赖

ES maven 依赖:
<dependency>
	<groupId>org.elasticsearch.client</groupId>
	<artifactId>transport</artifactId>
	<version>5.6.0</version>
</dependency>

二、Java API 操作

1. 创建TCP客户端

Settings settings = Settings.builder().put("cluster.name", "es集群名称").build();
	TransportClient client = new PreBuiltTransportClient(settings); 
	TransportAddress transportAddress = new InetSocketTransportAddress(InetAddress.getByName("es服务ip"), 9300);
	client.addTransportAddress(transportAddress);

2. 创建索引结构

	XContentBuilder builder=XContentFactory
			.jsonBuilder()
			.startObject()
			    .startObject("sina")
				.startObject("properties")
					.startObject("article_title")
						.field("type", "text")
						.field("store", true)
						.field("index",true)
					.endObject()
					.startObject("article_content")
						.field("type", "text")
						.field("store", true)
						.field("index",true)
					.endObject()
					.startObject("article_url")
						.field("type", "text")
						.field("store", true)
						.field("index",true)
					.endObject()
				.endObject()
			.endObject()
		.endObject();

3. 创建索引

client.admin().indices().prepareCreate("pages").execute().actionGet();
PutMappingRequest mapping = Requests.putMappingRequest("pages").type("sina").source(builder);
client.admin().indices().putMapping(mapping).actionGet();

4. 添加索引数据

IndexResponse response = client.prepareIndex("pages", "sina", null)
							   .setSource(jsonBuilder().startObject()
													   .field("article_title", "title".getBytes())
													   .field("article_content", "content".getBytes())
													   .field("article_url", "url".getBytes())
													   .endObject()
											   )
							  .execute()
							  .actionGet();
			
client.close();

5. ElasticSearch 设置 mapping 报错 No handler for type [string] declared on field [productID]

原因:5.X以上版本没有string类型了,换成了text和keyword作为字符串类型。

6. elasticsearch 6.0之后对支持的 索引字段类型做了调整 ,新建Mapping映射时,要查看最新的文档。

参考:

http://www.cnblogs.com/dxf813/p/8447467.html

https://my.oschina.net/congqian/blog/383463

https://blog.csdn.net/heatdeath/article/details/79510150


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值