日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

elasticsearch Insert 插入数据和delete 删除数据(Java)

發(fā)布時(shí)間:2024/1/23 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elasticsearch Insert 插入数据和delete 删除数据(Java) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先我不贊成再采用一些中間件(jar包)來(lái)解決和 Elasticsearch? 之間的交互,比如 Spring-data-elasticsearch.jar 系列一樣,用就得依賴它。而 Elasticsearch? 本身的用法就是很簡(jiǎn)潔的,也很容易,只要稍微加一下封裝,即可解決。下面上我的簡(jiǎn)單封裝的批量處理。

  • package com.sojson.core.elasticsearch.manager;
  • import java.util.ArrayList;
  • import java.util.HashMap;
  • import java.util.List;
  • import java.util.Map;
  • import net.sf.json.JSONObject;
  • import org.elasticsearch.action.bulk.BulkRequestBuilder;
  • import org.elasticsearch.action.bulk.BulkResponse;
  • import org.elasticsearch.action.index.IndexRequestBuilder;
  • import com.sojson.common.utils.StringUtils;
  • import com.sojson.core.elasticsearch.utils.ESTools;
  • public class InsertManager {
  • /**
  • * 添加數(shù)據(jù)到Elasticsearch
  • * @param index 索引
  • * @param type 類(lèi)型
  • * @param idName Id字段名稱
  • * @param json 存儲(chǔ)的JSON,可以接受Map
  • * @return
  • */
  • public static Map save(String index, String type, String idName,JSONObject json) {
  • List list = new ArrayList();
  • list.add(json);
  • return save(index, type, idName, list);
  • }
  • /**
  • * 添加數(shù)據(jù)到Elasticsearch
  • * @param index 索引
  • * @param type 類(lèi)型
  • * @param idName Id字段名稱
  • * @param listData 一個(gè)對(duì)象集合
  • * @return
  • */
  • @SuppressWarnings("unchecked")
  • public static Map save(String index, String type, String idName,List listData) {
  • BulkRequestBuilder bulkRequest = ESTools.client.prepareBulk().setRefresh(true);
  • Map resultMap = new HashMap();
  • for (Object object : listData) {
  • JSONObject json = JSONObject.fromObject(object);
  • //沒(méi)有指定idName 那就讓Elasticsearch自動(dòng)生成
  • if(StringUtils.isBlank(idName)){
  • IndexRequestBuilder lrb = ESTools.client ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? .prepareIndex(index, type) ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? .setSource(json);
  • bulkRequest.add(lrb);
  • }
  • else{
  • String idValue = json.optString(idName);
  • IndexRequestBuilder lrb = ESTools.client ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? .prepareIndex(index, type,idValue) ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? .setSource(json);
  • bulkRequest.add(lrb);
  • }
  • }
  • BulkResponse bulkResponse = bulkRequest.execute().actionGet();
  • if (bulkResponse.hasFailures()) {
  • // process failures by iterating through each bulk response item
  • System.out.println(bulkResponse.getItems().toString());
  • resultMap.put("500", "保存ES失敗!");
  • return resultMap;
  • }
  • bulkRequest = ESTools.client.prepareBulk();
  • resultMap.put("200", "保存ES成功!");
  • return resultMap;
  • }
  • }
  • Elasticsearch的刪除也是很靈活的,下次我再介紹, DeleteByQuery的方式。今天就先介紹一個(gè)根據(jù)ID刪除。上代碼。

  • package com.sojson.core.elasticsearch.manager;
  • import org.elasticsearch.action.delete.DeleteResponse;
  • import com.sojson.common.model.SOBanggKey;
  • import com.sojson.core.elasticsearch.utils.ESTools;
  • public class DeleteManager {
  • /**
  • * 根據(jù)ID刪除
  • * @param key
  • * @return
  • */
  • public static int deleteSOBanggByKey(SOBanggKey key) {
  • //這里可以忽略,組裝一個(gè)我業(yè)務(wù)邏輯的ID
  • String prefix = "%sx_x%s";
  • String id = String.format(prefix, key.getId(),key.getGid());
  • DeleteResponse result = ESTools.client.prepareDelete().setRefresh(true).setIndex(MappingManager.INDEX)
  • .setType(MappingManager.B_TYPE)
  • .setId(id)//設(shè)置ID
  • .setRefresh(true)//刷新
  • .execute().actionGet();
  • //是否查找并刪除
  • boolean isfound = result.isFound();
  • return isfound?1:0;
  • }
  • }
  • 總結(jié)

    以上是生活随笔為你收集整理的elasticsearch Insert 插入数据和delete 删除数据(Java)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。