/**创建Client*/
Settings settings=Settings.builder().put("cluster.name","my-application").build();
TransportClient client=new PreBuiltTransportClient(settings);
client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));
/**
* 新增
*/
@Autowired
private TransportClient client;
@Override
public boolean saveRecord() throws Exception {
IndexResponse response = client.prepareIndex("索引", "类型")
.setSource(JSON.toJSONString("数据"), XContentType.JSON)
.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE)
.get();
if("created".equals(response.getResult().getLowercase())) {
return true;
}
return false;
}
/**
* 删除根据ID
* @return
*/
public Result deleteRecordsById() {
Result result = new Result();
try {
client.prepareDelete("索引", "类型", "ID").get();
result.setRet(ResultStatus.OK);
} catch (Exception e) {
result.setRet(ResultStatus.ERROR);
result.setMsg(e.getMessage());
e.printStackTrace();
}
return result;
}
/**
* 修改根据ID
* @param doc
* @return
*/
@Override
public Result updateRecordsById() {
Result result = new Result();
try {
client.prepareUpdate("索引", "类型", "ID")
.setDoc(jsonBuilder()
.startObject()
.field("字段", "值") // .....根据自己需要
.endObject())
.get();
result.setRet(ResultStatus.OK);
} catch (IOException e) {
result.setRet(ResultStatus.ERROR);
result.setMsg(e.getMessage());
e.printStackTrace();
}
return result;
}
/**
* 修改自定义
* @return
*/
@Override
public Result updateRecordsByEventNum() {
Result result = new Result();
try {
UpdateByQueryRequestBuilder updateByQuery = UpdateByQueryAction.INSTANCE.newRequestBuilder(client);
updateByQuery.source(ESInfo.TIMELINE_INDEX)
//查询要修改的结果集
.filter(QueryBuilders.termQuery("字段(条件)","值"))
//修改操作
.script(new Script( "ctx._source['字段(修改)']='"+ "值"+"'"));
//响应结果集
BulkByScrollResponse response = updateByQuery.get();
long updated = response.getUpdated();
result.setRet(ResultStatus.OK);
} catch (Exception e) {
result.setRet(ResultStatus.ERROR);
result.setMsg(e.getMessage());
e.printStackTrace();
}
return result;
}
/**
* 查询根据ID
* @return
*/
public Result getData(){
Result result=new Result();
try {
GetResponse response = client.prepareGet("索引", "类型", "ID")
.setOperationThreaded(false)
.get();
result.setRet(ResultStatus.OK);
} catch (Exception e) {
result.setRet(ResultStatus.ERROR);
e.printStackTrace();
}
return result;
}
/**
* 多条件查询
* @return
*/
@Override
public Result getRecordsIdByLzbh() {
Result result=new Result();
try {
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.must(QueryBuilders.matchQuery("字段", "值"));
SearchHit[] hits = client.prepareSearch()
.setQuery(queryBuilder)
.get().getHits().getHits();
List<String> list = new ArrayList<>();
for(SearchHit hit : hits) {
list.add(hit.getId());
}
result.setDataStore(list);
result.setMsg(ResultStatus.OK);
} catch (Exception e) {
result.setMsg(ResultStatus.ERROR);
e.printStackTrace();
}
return result;
}