Java利用ElasticSearch实现增删改功能

 更新时间:2023年08月09日 10:31:00   作者:Awbeci  
这篇文章主要为大家详细介绍了Java如何利用ElasticSearch实现增删改功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

前言

最近在学习elasticsearch,所以从最简单的增删改功能开始,下面是我的版本依赖,我使用的是java17elasticsearch-java8.7spring-boot3.0

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
    <groupId>co.elastic.clients</groupId>
    <artifactId>elasticsearch-java</artifactId>
    <version>8.7.1</version>
</dependency>

静态index操作

我使用的是ElasticsearchOperations来实现,先看看基础类定义:

@Data
@Document(indexName = "index_urls", createIndex = true)
public class UrlIndex {
    private String id;
    private String uid;
    private String title;
    // 下拉提示建议使用的字段,注意:Completion类型字段,不能做筛选用
//    @CompletionField(analyzer="ik_smart",searchAnalyzer="ik_smart", maxInputLength = 100)
    private Completion suggest;
    private String url;
    private String domain;
    private String description;
    private String favicon;
    private Date createdDt;//创建时间
    private Date updatedDt;//更新时间
}

定义好之后,我们来实现增删改功能:

新增:

UrlIndex url = JSONObject.parseObject(msg, UrlIndex.class);
UrlIndex urlIndex = elasticsearchOperations.save(url);

编辑:

Url url = JSONObject.parseObject(msg, Url.class);
UrlIndex urlIndex = elasticsearchOperations.get(url.getId(), UrlIndex.class);
if (urlIndex != null) {
    urlIndex.setTitle(url.getTitle());
    // 存在即更新,,注意要设置index
    elasticsearchOperations.save(urlIndex);
}

删除:

elasticsearchOperations.delete(id, UrlIndex.class);

动态index操作

如果我们不想在实体类上添加@Document来指定index,我们如何实现呢?

@Document(indexName = "index_urls", createIndex = true)

新增:

UrlIndex url = JSONObject.parseObject(msg, UrlIndex.class);
IndexCoordinates indexCoordinates = IndexCoordinates.of("index_name");
UrlIndex urlIndex = elasticsearchOperations.save(url, indexCoordinates);

编辑:

IndexCoordinates indexCoordinates = IndexCoordinates.of("index_name");
UrlIndex resUrl = JSONObject.parseObject(msg, UrlIndex.class);
// 通过get查询出es数据,注意要设置index
UrlIndex urlIndex = elasticsearchOperations.get(resUrl.getId(), UrlIndex.class, indexCoordinates);
if (urlIndex != null) {
    urlIndex.setTitle(resUrl.getTitle());
    urlIndex.setSuggest(resUrl.getSuggest());
    // 存在即更新,,注意要设置index
    elasticsearchOperations.save(urlIndex, indexCoordinates);
}

删除:

IndexCoordinates indexCoordinates = IndexCoordinates.of("index_name");
elasticsearchOperations.delete(msg, indexCoordinates);

总结

1、在实体类上通过设置@Document(indexName = "index_urls", createIndex = true)就可以实现索引就可以完成增删改功能

2、但是如果你使用动态索引,则要指定你的索引名

3、我使用的是ElasticsearchOperations当然还有其它的实现方式,如EnableElasticsearchRepositories

以上就是Java利用ElasticSearch实现增删改功能的详细内容,更多关于Java ElasticSearch的资料请关注脚本之家其它相关文章!

相关文章

  • Java dom4j创建解析xml文档过程解析

    Java dom4j创建解析xml文档过程解析

    这篇文章主要介绍了Java dom4j创建解析xml文档过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • java-SSH2实现数据库和界面的分页

    java-SSH2实现数据库和界面的分页

    本文主要是介绍SSH2实现数据库和界面的分页的代码,分页在web应用中是经常要做的事情,实用性比较大,有需要的朋友可以来了解一下。
    2016-10-10
  • SpringMvc+POI处理excel表数据导入

    SpringMvc+POI处理excel表数据导入

    这篇文章主要为大家详细介绍了SpringMvc+POI处理excel表数据导入,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Servlet实现多文件上传功能

    Servlet实现多文件上传功能

    这篇文章主要为大家详细介绍了Servlet实现文件上传功能,还可以实现Servlet多文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • JavaWeb应用实例:用servlet实现oracle 基本增删改查

    JavaWeb应用实例:用servlet实现oracle 基本增删改查

    本篇文章主要介绍了JavaWeb应用实例:用servlet实现oracle 基本增删改查,非常具有实用价值,需要的朋友可以参考下。
    2017-01-01
  • Java实现验证文件名有效性的方法详解

    Java实现验证文件名有效性的方法详解

    在本文中,我们将讨论使用 Java 验证一个给定的字符串是否具有操作系统的有效文件名的不同方法,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-09-09
  • Maven 的配置文件路径读取方法

    Maven 的配置文件路径读取方法

    这篇文章主要介绍了Maven 的配置文件路径读取方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 浅谈Java内存区域划分和内存分配策略

    浅谈Java内存区域划分和内存分配策略

    这篇文章主要介绍了浅谈Java内存区域划分和内存分配策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 解析Mybatis连续传递多个参数的方法

    解析Mybatis连续传递多个参数的方法

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架,这篇文章主要介绍了Mybatis连续传递多个参数的方法,需要的朋友可以参考下
    2016-08-08
  • ElasticSearch学习之Es集群Api操作示例

    ElasticSearch学习之Es集群Api操作示例

    这篇文章主要为大家介绍了ElasticSearch学习之Es集群Api操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01

最新评论