ES简单教程(五)使用ElasticsearchRestTemplate手动生成ES索引 项目启动自动生成ES索引

这篇具有很好参考价值的文章主要介绍了ES简单教程(五)使用ElasticsearchRestTemplate手动生成ES索引 项目启动自动生成ES索引。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

其实使用SpringBoot项目玩ES的时候,人家本身是提供了一个注解@Docment是可以自动在项目启动的时候创建ES索引的!
只不过没用,因为ES的版本在升级,ElasticsearchRestTemplate配套的脚手架也在升级,所以你会在网上遇到一个情况:搜到的各类解决方案可能都太适配你的情况,搜到个方法吧,逻辑OK,但是拿进来项目里边一用,方法过时了,扑街了,囧~

本身项目启动时自动创建ES索引的方式有两种

1、使用自带注解@Docment(不推荐)

当你兴致勃勃的想着简单使用这个注解躺平时,你发现这TMD压根不起作用,还不能自定义修改settings.文章来源地址https://www.toymoban.com/news/detail-773252.html

2、项目启动时自定义创建

package com.test;

/**
 * ES初始化创建索引
 */
@Component
@Order(value = 1)
@Slf4j
public class CreateESIndexConfig implements CommandLineRunner {

    @Autowired
    private ElasticsearchRestTemplate elasticsearchRestTemplate;

	//json文件存储路径为:src/main/resources/es-settings/es_settings.json
    @Value("classpath:es-settings/es_settings.json")
    private Resource esSetting;

    /**
     * 项目启动的时候,如果elasticsearch已经存有索引,则不做任何操作,如果没有索引,则新建索引
     * @param args
     * @throws Exception
     */
    @Override
    public void run(String... args) throws Exception {
        log.info("[ES]开始创建索引{}...", "test_index");
		
		//读取json文件内的字符内容
        String esSettingStr = IOUtils.toString(esSetting.getInputStream(), Charset.forName("utf-8"));
        //将json数据转为Map 因为下面indexOps.create的方法是需要传入Map(settings)和Docment(mapping)
        Map<String, Object> settings = JSONObject.parseObject(esSettingStr).getInnerMap();
        IndexOperations indexOps =
                elasticsearchRestTemplate.indexOps(IndexCoordinates.of("test_index"));
        if(indexOps.exists()==false){
            indexOps.create(settings, indexOps.createMapping(TestIndex.class));
            log.info("[ES]创建索引{}完成.", "test_index");
        }else{
            log.info("[ES]索引{}已存在.", "test_index");
        }
    }
}

到了这里,关于ES简单教程(五)使用ElasticsearchRestTemplate手动生成ES索引 项目启动自动生成ES索引的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 黑苹果简单的手动开启显示器HiDPI教程

    原文来源于黑果魏叔官网。转载请保留出处。 先说个大概逻辑,就是让系统识别显示器,不管是one-key-hidpi还是hacintools,目的都一样,跟vendorID和productID有关系,我这个无非就是手动而已,可以理解成一键hidpi的手动基础版。 1.打开finder,打开系统文件夹。 2.打开资源库文件夹

    2024年02月12日
    浏览(28)
  • 手动安装的ElasticSearch如何注册成一个服务(使用systemctl 管理Es)

    创建一个 Elasticsearch 服务配置文件。 在 /etc/systemd/system/ 目录中创建一个名为 elasticsearch.service 的文件 sudo vim /etc/systemd/system/elasticsearch.service 将以下内容复制到 elasticsearch.service 文件中: 设置 Elasticsearch 目录的权限。 sudo chown -R esadmin /home/elasticsearch/elasticsearch-7.15.1 注册启用服

    2024年04月22日
    浏览(21)
  • qt打开项目缺少ui_文件,使用手动生成

    打开项目看到,缺少ui_myMainWindow.h文件,它是和myMainWindow.ui相对应的,所以我们需要手动生成对应的ui_文件。 步骤如下: 使用 uic.exe 来生成,如果在系统变量Path中设置了qt的bin目录,那么就可以直接使用uic.exe。 使用方法是: 在myMainWindow.ui所在文件夹的空白处点击右键,选择

    2024年02月11日
    浏览(34)
  • ES简单教程(一)创建ES映射实体对象,即索引

    声明 :本教程可能并不完善,没有一个总览的规划,各个模块都相对独立,做到哪写到哪,仅供参考,共同学习。 ES的Java映射实体类主要与ES的索引匹配,跟传统的数据库稍微有点区别:ES的索引就相当于是表,ES的文档就相当于表里的每一条数据,大致可以这么理解作为上

    2024年02月12日
    浏览(28)
  • ElasticsearchRestTemplate 基本使用

    随着数据量的增加和数据结构的复杂化,传统的关系型数据库已经不能满足用户的需求,而搜索引擎则成为了一种更加高效、可扩展的数据检索方案。而 Elasticsearch 则是一个流行的搜索引擎,在 Java 生态系统中,ElasticsearchRestTemplate 是一个使用起来非常方便的 Elasticsearch 客户

    2024年02月09日
    浏览(25)
  • ElasticsearchRestTemplate 和ElasticsearchRepository 的使用

    目录 一、使用ElasticsearchRestTemplate类  1.引用Maven类库 2. 配置文件application.yml 3.创建实体类(用于JSON文档对象的转换) 二、使用ElasticsearchRepository 类 1.引用Maven类库 2. 配置文件application.yml 3. ElasticsearchRepository接口的源码  4.CrudRepository  源码 5. 查询查找策略 5.1存储库方法可

    2024年02月03日
    浏览(29)
  • ElasticSearchRepository和ElasticsearchRestTemplate的使用

    上一章:《SpringBoot整合ElasticSearch实现模糊查询,批量CRUD,排序,分页,高亮》 在上一章节,我们学习到了es通过RestHighLevelClient实现最基本的增删改查的语法,在本章我们继续深入实践一下es的相关操作,在SpringBoot的相关依赖中,es已经帮我们将基本的操作都进行了封装,我

    2024年02月03日
    浏览(23)
  • 【10秒开服】幻兽帕鲁全自动部署教程,难道你还想手动搭建游戏服务器吗?快来学习这个简单又快速的方法!

    在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。你也可以将它们进行售卖,或肢解后食用。 引用自:https://store.steampowered.com/app/1623730/P

    2024年02月19日
    浏览(34)
  • 记录Springboot使用ElasticsearchRestTemplate的updateByQuery的用法的坑

    由于ElasticsearchRestTemplate对 RestHighLevelClient 进一步的封装,因此对updateByQuery的摸索过程记录 如果使用如下图的方式,会导致script构造的时候出现语法错误 此测试过程历时几个小时 ** 另外还需要注意elasticsearch中该字段的数据类型存储,在进行Query构建时,需要与elasticsearch中

    2024年02月07日
    浏览(31)
  • ES自己手动高亮

    废话不多说 直接上代码: 1:第一步 处理高亮词: 这个跟各位的业务有关系,比如有没有用到 近义词 有没有 什么 繁简 纠错等等的转换. 这一步,就是要把 输入词keyword 转成 需要高亮的 词数组[以下代码是我自己业务的处理流程, 各位将就着看,自己理解,对着自己的业务,将就着改

    2024年02月12日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包