目录
1 简介
2 集成springboot
2.1 引入依赖
2.2 删除索引库(彻底删除所有数据)
2.2 更新索引
2.3 删除数据
2.4 添加数据到索引库
2.5 判断索引中是否存在数据
1 简介
Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:
- 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
- 实时分析的分布式搜索引擎。
- 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
2 集成springboot
2.1 引入依赖
注入:
@Autowired
private RestHighLevelClient restHighLevelClient;
2.2 删除索引库(彻底删除所有数据)
indices:索引库ID
restHighLevelClient.indices().delete(new DeleteIndexRequest(indices), RequestOptions.DEFAULT);
2.2 更新索引
@Override
public void updateDocuments(String indices, Object object) {
try {
JSONObject json = (JSONObject) JSONObject.toJSON(object);
if (StringUtils.isEmpty(json.getString("id"))){
throw new RuntimeException("id为空!");
}
UpdateRequest updateRequest = new UpdateRequest(indices,json.getString("id")).doc(JSONObject.toJSONString(object), XContentType.JSON);
updateRequest.docAsUpsert(true);
restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
} catch (IOException ioException) {
log.error("添加索引{}异常:{}", indices,ioException.getMessage(), ioException);
}
2.3 删除数据
@Override
public void deleteIndexById(String indices, String id) {
try {
DeleteRequest request = new DeleteRequest(indices, id);
restHighLevelClient.delete(request, RequestOptions.DEFAULT);
} catch (IOException ioException) {
log.error("删除索引{}异常:{}", indices,ioException.getMessage(), ioException);
}
}
2.4 添加数据到索引库
@Override
public void addDocuments(String indices, Object object) {
try {
BulkRequest bulkRequest = new BulkRequest();
IndexRequest request = new IndexRequest(indices);
JSONObject json = (JSONObject) JSONObject.toJSON(object);
request.source(json);
request.id(json.getString("id"));
bulkRequest.add(request);
restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
} catch (IOException ioException) {
log.error("添加索引{}异常:{}", indices,ioException.getMessage(), ioException);
}
}
indices:索引库ID
restHighLevelClient.indices().delete(new DeleteIndexRequest(indices), RequestOptions.DEFAULT);
@Override
public void updateDocuments(String indices, Object object) {
try {
JSONObject json = (JSONObject) JSONObject.toJSON(object);
if (StringUtils.isEmpty(json.getString("id"))){
throw new RuntimeException("id为空!");
}
UpdateRequest updateRequest = new UpdateRequest(indices,json.getString("id")).doc(JSONObject.toJSONString(object), XContentType.JSON);
updateRequest.docAsUpsert(true);
restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);
} catch (IOException ioException) {
log.error("添加索引{}异常:{}", indices,ioException.getMessage(), ioException);
}
2.3 删除数据
@Override
public void deleteIndexById(String indices, String id) {
try {
DeleteRequest request = new DeleteRequest(indices, id);
restHighLevelClient.delete(request, RequestOptions.DEFAULT);
} catch (IOException ioException) {
log.error("删除索引{}异常:{}", indices,ioException.getMessage(), ioException);
}
}
2.4 添加数据到索引库
@Override
public void addDocuments(String indices, Object object) {
try {
BulkRequest bulkRequest = new BulkRequest();
IndexRequest request = new IndexRequest(indices);
JSONObject json = (JSONObject) JSONObject.toJSON(object);
request.source(json);
request.id(json.getString("id"));
bulkRequest.add(request);
restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
} catch (IOException ioException) {
log.error("添加索引{}异常:{}", indices,ioException.getMessage(), ioException);
}
}
@Override
public void addDocuments(String indices, Object object) {
try {
BulkRequest bulkRequest = new BulkRequest();
IndexRequest request = new IndexRequest(indices);
JSONObject json = (JSONObject) JSONObject.toJSON(object);
request.source(json);
request.id(json.getString("id"));
bulkRequest.add(request);
restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);
} catch (IOException ioException) {
log.error("添加索引{}异常:{}", indices,ioException.getMessage(), ioException);
}
}



