|
@ -0,0 +1,111 @@
|
|
|
package com.yihu.base.es.config;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.base.es.config.model.SaveModel;
|
|
|
import io.searchbox.client.JestClient;
|
|
|
import io.searchbox.core.*;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Scope;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
;
|
|
|
|
|
|
/**
|
|
|
* Created by chenweida on 2017/6/2.
|
|
|
*/
|
|
|
@Component
|
|
|
@Scope("prototype")
|
|
|
public class ElastricSearchHelper {
|
|
|
private Logger logger = LoggerFactory.getLogger(ElastricSearchHelper.class);
|
|
|
@Autowired
|
|
|
private ElasticFactory elasticFactory;
|
|
|
|
|
|
public Boolean save(String index, String type, List<SaveModel> sms) {
|
|
|
try {
|
|
|
//得到链接
|
|
|
JestClient jestClient = elasticFactory.getJestClient();
|
|
|
|
|
|
int success = 0;
|
|
|
int error = 0;
|
|
|
Bulk.Builder bulk = new Bulk.Builder().defaultIndex(index).defaultType(type);
|
|
|
for (SaveModel obj : sms) {
|
|
|
try {
|
|
|
Index indexObj = new Index.Builder(obj).build();
|
|
|
success++;
|
|
|
bulk.addAction(indexObj);
|
|
|
} catch (Exception e) {
|
|
|
logger.error(e.getMessage());
|
|
|
error++;
|
|
|
}
|
|
|
}
|
|
|
BulkResult br = jestClient.execute(bulk.build());
|
|
|
logger.info("save flag:" + br.isSucceeded());
|
|
|
logger.info("save success:" + success);
|
|
|
logger.info("save error:" + error);
|
|
|
return br.isSucceeded();
|
|
|
} catch (Exception e) {
|
|
|
logger.error(" save error :" + e.getMessage());
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
public Boolean update(String index, String type, List<SaveModel> sms) {
|
|
|
try {
|
|
|
//得到链接
|
|
|
JestClient jestClient = elasticFactory.getJestClient();
|
|
|
|
|
|
int success = 0;
|
|
|
int error = 0;
|
|
|
boolean isSuccessed = true;
|
|
|
Bulk.Builder bulk = new Bulk.Builder().defaultIndex(index).defaultType(type);
|
|
|
for (SaveModel obj : sms) {
|
|
|
try {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
jo.put("doc", obj);
|
|
|
Update indexObj = new Update.Builder(jo.toString()).index(index).type(type).id(obj.getId()).build();
|
|
|
bulk.addAction(indexObj);
|
|
|
success++;
|
|
|
} catch (Exception e) {
|
|
|
error++;
|
|
|
isSuccessed = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
BulkResult br = jestClient.execute(bulk.build());
|
|
|
logger.info("update flag:" + br.isSucceeded());
|
|
|
logger.info("update success:" + success);
|
|
|
logger.info("update error:" + error);
|
|
|
return isSuccessed;
|
|
|
} catch (Exception e) {
|
|
|
logger.error(" update error :" + e.getMessage());
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 删除
|
|
|
*/
|
|
|
private void deleteData(String index, String type, List<SaveModel> saveModels) {
|
|
|
try {
|
|
|
JestClient jestClient = elasticFactory.getJestClient();
|
|
|
|
|
|
//根据id批量删除
|
|
|
Bulk.Builder bulk = new Bulk.Builder().defaultIndex(index).defaultType(type);
|
|
|
for (SaveModel obj : saveModels) {
|
|
|
Delete indexObj = new Delete.Builder(obj.getId()).build();
|
|
|
bulk.addAction(indexObj);
|
|
|
}
|
|
|
BulkResult br = jestClient.execute(bulk.build());
|
|
|
|
|
|
logger.info("delete data count:" + saveModels.size());
|
|
|
logger.info("delete flag:" + br.isSucceeded());
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
}
|