栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

Elasticsearch学习+springboot

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Elasticsearch学习+springboot

目录

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

2.5 判断索引中是否存在数据
@Override
public boolean isExistIndex(String indices){
	try {
		return restHighLevelClient.indices().exists(new GetIndexRequest(indices),
				RequestOptions.DEFAULT) && restHighLevelClient.count(new CountRequest(indices),
				RequestOptions.DEFAULT).getCount() > 0;
	} catch (IOException e) {
		e.printStackTrace();
	}
	return false;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/895692.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号