Elasticsearch5.6.3存储字节数组

本文介绍如何使用Elasticsearch存储字节数组,包括建立索引、Java代码插入示例、Kibana存储显示及字节数组读取方法。探讨了binary数据类型的使用,以及Base64格式在展示和解析过程中的角色。
摘要由CSDN通过智能技术生成

Index建立

字节数组在Elasticsearch中数据类型对应binary。因此在新建索引时需要注意类型

{
"mappings":{
	"tags":{
		  "_all": {
        "enabled": false
	      },	
		"jobClass":{
				  "type": "binary",
				  "index":false,
				  "doc_values":false				  
		}
		}
}}

java代码插入示例

		EsClient.init(config);//封装的es连接池  此处不详细描述
		Client client = EsClient.getClient();
		//构造请求对象	//构造请求对象
	    BulkRequestBuilder bulkRequest = client.prepareBulk();
		XContentBuilder builder = XContentFactory.jsonBuilder().startObject().field("jobClass", jobClass).endObject();
		bulkRequest.add(client.prepareUpdate(index, type, id).setDoc(builder).setUpsert(builder));
		BulkResponse response = bulkRequest.execute().actionGet();

kinbana存储显示

在这里插入图片描述字节 数组被转换为了Base64格式 英文字母格式显示了出来。

读取字节数组

从Elasticsearch获取的response中只有字符串形式,需要再转换为字节数组。

import java.util.Base64;
import java.util.Base64.Decoder;
		Map map = client.prepareGet(index, type, list.get(n)).get().getSource();
		if (map != null) {
			String response = map.get("jobClass").toString();
			//将字符串转换为字节数组
			Decoder decoder = Base64.getDecoder();
			byte[] bs = decoder.decode(response.toString());
		}

字节数组可以节省磁盘空间,但是对应的增加了解析的成本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值