欢迎投稿

今日深度:

Elasticsearch5.6.3存储字节数组,

Elasticsearch5.6.3存储字节数组,


Elasticsearch5.6.3存储字节数组

    • Index建立
    • java代码插入示例
    • kinbana存储显示
    • 读取字节数组

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());
		}

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

www.htsjk.Com true http://www.htsjk.com/Elasticsearch/36091.html NewsArticle Elasticsearch5.6.3存储字节数组, Elasticsearch5.6.3存储字节数组 Index建立 java代码插入示例 kinbana存储显示 读取字节数组 Index建立 字节数组在Elasticsearch中数据类型对应binary。因此在新建索引...
相关文章
    暂无相关文章
评论暂时关闭