Spring Boot整合Elasticsearch详细教程!官方工具类该如何使用?一篇文章搞定!

springboot整合elasticsearch springboot使用elasticsearch 阅读详情

一、主要内容

  • spring boot 引入Elasticsearch
  • ElasticsearchTemplate的使用
  • ElasticsearchRepository的使用

二、环境整合

创建Elasticsearch工程,引入依赖

一般情况下,都会单独创建一个工程,用于操作es。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
	<version>2.5.1</version>
</dependency>

版本统一

目前springboot-data-elasticsearch最新版本是2.5.1,这个版本使用的es版本为7.12.1,需要注意的是,我们这里引入的版本需要与服务器安装的版本一致。

可以通过Maven仓库进行查看版本信息,地址:https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-elasticsearch

修改配置文件

spring: 
 data: 
  elasticsearch: 
   cluster-name: es-cluster
   cluster-nodes: 10.133.28.55:9300

三、ElasticsearchTemplate的使用

ElasticsearchTemplate类似于RedisTemplate,是spring提供的较为底层的与Elasticserch交互的类。

常用注解

@Document

注解作用在类上,标记实体类为文档对象,指定实体类与索引对应关系。常用配置项有:

  • indexName:索引名称
  • type: 索引类型,默认为空
  • shards: 主分片数量,默认5
  • replicas:复制分片数量,默认1
  • createIndex:创建索引,默认为true
@Id

指定文档ID,加上这个注解,文档的_id会与我们的数据ID是一致的,否则在不给定默认值的情况下,es会自动创建。

@Field

指定普通属性,标明这个是文档中的一个字段。常用的配置项有:

  • type: 对应Elasticsearch中属性类型。默认自动检测。使用FiledType枚举可以快速获取
public enum FieldType {
	Text,//会进行分词并建立索引的字符类型
	Integer,
	Long,
	Date,
	Float,
	Double,
	Boolean,
	Object,
	Auto,//自动判断字段类型
	Nested,//嵌套对象类型
	Ip,
	Attachment,
	Keyword//不会进行分词建立索引的类型
}
  • index: 是否创建倒排索引,一般不需要分词的属性不需要创建索引

  • analyzer:指定索引类型。

  • store:是否进行存储,默认不进行存储。

    其实不管我们将store值设置为true或false,elasticsearch都会将该字段存储到Field域中;但是他们的区别是什么?

    1. store = false时,默认设置;那么给字段只存储在"_source"的Field域中;

    2. store = true时,该字段的value会存储在一个跟_source平级的独立Field域中;同时也会存储在_source中,所以有两份拷贝。

    那么我们在什么样的业务场景下使用store field功能?

    1. _source field在索引的mapping 中disable了。这种情况下,如果不将某个field定义成store=true,那些将无法在返回的查询结果中看到这个field。
    2. _source的内容非常大。这时候如果我们想要在返回的_source document中解释出某个field的值的话,开销会很大(当然你也可以定义source filtering将减少network overhead),比例某个document中保存的是一本书,所以document中可能有这些field: title, date, content。假如我们只是想查询书的title 跟date信息,而不需要解释整个_source(非常大),这个时候我们可以考虑将title, date这些field设置成store=true。

创建实体

// 关联的索引是item,类型是_doc,直接使用而不创建索引
@Document(indexName = "item",type = "_doc",createIndex = "false")
public class Item {
    @Id
    private Long id;
    // title使用ik进行分词
    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    private String title;
    // brand 不被分词
    @Field(type=FieldType.Keyword)
    private String brand;
    @Field(type=FieldType.Double)
    private Double price;
    // brand 不被分词,且不创建索引
    @Field(index = false,type = FieldType.Keyword)
    private String images;
}

索引管理

ElasticsearchTemplate提供了创建索引的方法,但是不建议使用 ElasticsearchTemplate 对索引进行管理(创建索引,更新映射,删除索引)。

索引就像是数据库或者数据库中的表,我们平时是不会是通过java代码频繁的去创建修改删除数据库或者表的相关信息,我们只会针对数据做CRUD的操作。

// 创建索引
elasticsearchTemplate.createIndex(Class<T> clazz);
// 删除索引,有好几个方法,有兴趣的同学可以自行翻阅源码
elasticsearchTemplate.deleteIndex(Class<T> clazz);

创建文档

新增单条文档
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class ESTest {
    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;
    @Test
    public void insertItemDoc(){
        Item item = new Item(1001L,"XXX1","XXX1","XXX1");
        IndexQuery indexQuery = new IndexQueryBuilder().withObject(item).build();
        elasticsearchTemplate.index(indexQuery);
    }
}
批量新增文档
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class ESTest {
    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;
    @Test
    public void insertItemDocBulk() {
    	List<Item> list = new ArrayList<>();
        list.add(new IndexQueryBuilder().withObject(new Item(1001L,"XXX1","XXX1","XXX1")).build())
        list.add(new IndexQueryBuilder().withObject(new Item(1002L,"XXX2","XXX2","XXX2")).build())
        IndexQuery indexQuery = new IndexQueryBuilder().withObject(item).build();
        elasticsearchTemplate.index(indexQuery);
    }
}

删除文档

删除都是根据主键进行删除,提供了两个方法:

  • delete(String indexName,String typeName,String id); 通过字符串指定索引,类型和id值;
  • delete(Class,String id) 第一个参数传递实体类类类型,建议使用此方法,减少索引名和类型名由于手动编写出现错误的概率。

代码比较简单,不再示例。

修改文档

@Test
public void updateItemDoc() {
    Map<String, Object> sourceMap = new HashMap<>();
    sourceMap.put("title", "YYY");

    IndexRequest indexRequest = new IndexRequest();
    indexRequest.source(sourceMap);

    UpdateQuery updateQuery = new UpdateQueryBuilder()
        .withClass(Stu.class)
        .withId("1001")
        .withIndexRequest(indexRequest)
        .build();
    elasticsearchTemplate.update(updateQuery);
}

查询文档

模糊查询

使用查询条件与所有的field进行匹配,进行查询

对于一些入参是不是看着很陌生?感觉头大是不是,别急,最后有解释。

@Test
public void queryItemDoc() {
    // 少年去和所有field进行匹配
    QueryStringQueryBuilder queryStringQueryBuilder = QueryBuilders.queryStringQuery("少年");
    // 查询条件SearchQuery是接口,只能实例化实现类。
    SearchQuery searchQuery = new NativeSearchQuery(queryStringQueryBuilder);
    List<Item> list = elasticsearchTemplate.queryForList(searchQuery, Item.class);
    for(Item item : list){
        System.out.println(item);
    }
}
使用match_all查询所有文档
@Test
public void matchAllItemDoc() {
   SearchQuery searchQuery = new NativeSearchQuery(QueryBuilders.matchAllQuery());
    List<Item> list = elasticsearchTemplate.queryForList(searchQuery, Item.class);
    for(Item item : list){
        System.out.println(item);
    }
}
使用match查询分页文档并排序
@Test
public void matchItemDoc() {
    // 构造分页信息:第一个参数是页码,从0算起。第二个参数是每页显示的条数
   	Pageable pageable = PageRequest.of(0, 2);
    // 构造排序信息
    SortBuilder sortBuilder = new FieldSortBuilder("price")
                .order(SortOrder.DESC);
    SearchQuery query = new NativeSearchQueryBuilder()
        .withQuery(QueryBuilders.matchQuery("title", "english"))
        .withPageable(pageable)
        .withSort(sortBuilder)
        .build();
    AggregatedPage<Item> pagedItem = elasticsearchTemplate.queryForPage(query, Item.class);
    System.out.println("查询后的总分页数目为:" + pagedItem.getTotalPages());
    List<Item> list = pagedItem.getContent();
    for (Item item : list) {
        System.out.println(item);
    }
}
多条件查询
 @Test
 public void mustShouldItemDoc(){
     BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
     List<QueryBuilder> listQuery = new ArrayList<>();
     listQuery.add(QueryBuilders.matchPhraseQuery("title","XX"));
     listQuery.add(QueryBuilders.rangeQuery("price").gte(10).lte(100));
     //boolQueryBuilder.should().addAll(listQuery); // 逻辑或
     boolQueryBuilder.must().addAll(listQuery);  // 逻辑与
     SearchQuery searchQuery = new NativeSearchQuery(boolQueryBuilder);
     List<Item> list = elasticsearchTemplate.queryForList(searchQuery, Item.class);
     for(Item item : list){
         System.out.println(item);
     }
 }
高亮查询
@Test
public void highlightStuDoc(){
    // 指定高亮的信息用什么标签包裹,默认使用<em>
    String preTag = "<font color='red'>";
    String postTag = "</font>";

    Pageable pageable = PageRequest.of(0, 10);

    SortBuilder sortBuilder = new FieldSortBuilder("price")
        .order(SortOrder.DESC);
	// 构造查询规则
    SearchQuery query = new NativeSearchQueryBuilder()
        .withQuery(QueryBuilders.matchQuery("title", "XXX"))
        .withHighlightFields(new HighlightBuilder.Field("title")
                             .preTags(preTag)
                             .postTags(postTag))
        .withSort(sortBuilder)
        .withPageable(pageable)
        .build();
    AggregatedPage<Item> paged = esTemplate.queryForPage(query, Item.class, new SearchResultMapper() {
        @Override
        public <T> AggregatedPage<T> mapResults(SearchResponse response, Class<T> clazz, Pageable pageable) {
			// 定义一个list存放最终返回的数据
            List<Item> listHighlight = new ArrayList<>();
			// 取出命中的信息
            SearchHits hits = response.getHits();
            for (SearchHit h : hits) {
                // 取出高亮的数据
                HighlightField highlightField = h.getHighlightFields().get("title");
                String title = highlightField.getFragments()[0].toString();
				// 取出其他数据
                Object id = (Object)h.getSourceAsMap().get("id");
                String brand = (String)h.getSourceAsMap().get("brand");
                Object price = (Object)h.getSourceAsMap().get("price");
                String images = (String)h.getSourceAsMap().get("images");
				// 处理数据
                Item itemHL = new Item();
                item.setId(Long.valueOf(id.toString()));
                item.setTitle(title);
                item.setBrand(brand);
                item.setPrice(Double.valueof(price.toString));
                item.setImages(images);

                listHighlight.add(itemHL);
            }

            if (listHighlight.size() > 0) {
                return new AggregatedPageImpl<>((List<T>)listHighlight);
            }
            return null;
        }
    });
    System.out.println("查询后的总分页数目为:" + paged.getTotalPages());
    List<Item> list = paged.getContent();
    for (Item item : list) {
        System.out.println(item);
    }
}

四、ElasticsearchRepository的使用

ElasticsearchRepository是基于ElasticsearchTemplate封装的一个接口用于操作Elasticsearch。

它主要干了啥呢?我们能通过它干些什么呢?

  • 它主要帮我们封装了一些常用的方法。如下图:

    image-20210617133707448

  • 我们还可以通过使用Not Add Like Or Between等关键词自动创建查询语句。它会自动帮你完成,无需写实现类。

    比如:你的方法名叫做:findByTitle,那么它就知道你是根据title查询,然后自动帮你完成,无需写实现类。

    【自定义方法命名约定】:

    image-20210617134220264

自定义Repository接口

这个是遵循SpringData的规范,在自定义接口中直接指定查询方法名称便可查询,无需进行实现。在idea里面也会提示ES里面有的字段,写起来挺方便的。

/**
 * 需要继承ElasticsearchRepository接口
 */
public interface ItemRepository extends ElasticsearchRepository<Item,Long> {
    /**
     * 方法名必须遵守SpringData的规范
     * 价格区间查询
     */
    List<Item> findByPriceBetween(double price1, double price2);
}

创建文档

新增单条文档

可以直接调用ItemRepository的save()方法。

@Autowired
private ItemRepository itemRepository;
@Test
public void insert(){
    Item item = new Item(1L, "小米手机7", "小米", 3499.00, "http://xxx/xxx.jpg");
    itemRepository.save(item);
}
批量新增文档

插入多条文档数据使用的saveAll()方法

@Autowired
private ItemRepository itemRepository;
@Test
public void indexList() {
    List<Item> list = new ArrayList<>();
    list.add(new Item(1L, "小米手机7", "小米", 3299.00, "http://xxx/1.jpg"));
    list.add(new Item(2L, "坚果手机R1", "锤子", 3699.00, "http://xxx/1.jpg"));
    list.add(new Item(3L, "华为META10", "华为", 4499.00, "http://xxx/1.jpg"));
    list.add(new Item(4L, "小米Mix2S", "小米", 4299.00, "http://xxx/1.jpg"));
    list.add(new Item(5L, "荣耀V10", "华为", 2799.00, "http://xxx/1.jpg"));
    // 接收对象集合,实现批量新增
    itemRepository.saveAll(list);
}

修改文档

修改文档数据也是使用的save()方法。

查询参数介绍

我们通过上面的方法截图,可以看出来ElasticsearchRepository提供了一些特殊的search()方法,用来构建一些查询。这几个方法里面的参数主要是SearchQuery和QueryBuilder,所以要完成一些特殊查询主要就是构建这两个参数。

SearchQuery

通过源码我们可以看到,SearchQuery是一个接口,有一个实现类叫NativeSearchQuery,实际使用中,我们的主要任务就是构建NativeSearchQuery来完成一些复杂的查询的。

image-20210618093342034

我们可以看到NativeSearchQuery的主要入参是QueryBuilder、SortBuilder、HighlightBuilder

一般情况下,我们不是直接是new NativeSearchQuery,而是使用NativeSearchQueryBuilder来完成NativeSearchQuery的构建。

NativeSearchQueryBuilder		
    .withQuery(QueryBuilder1)
    .withFilter(QueryBuilder2)
    .withSort(SortBuilder1)
    .withXXXX()
    .build();

QueryBuilder

QueryBuilder是一个接口,它有非常多的实现类,可以用于不同的查询条件构建。

要构建QueryBuilder,我们可以使用工具类QueryBuilders,里面有大量的方法用来完成各种各样的QueryBuilder的构建,字符串的、Boolean型的、match的、地理范围的等等。

// 构建一个普通的查询
SearchQuery searchQuery = new NativeSearchQueryBuilder()
    .withQuery(QueryBuilders.queryStringQuery("spring boot OR 书籍"))
    .build();

查询方法跟上面介绍的ElasticsearchTemplate差不多,就不再单独举例了。

综上,我们在一般的场景下使用ElasticsearchRepository就可以满足我们的需要,在一些复杂的查询场景下,可以配合ElasticsearchTemplate来使用。

最后,欢迎关注「Hugh的白板」公号,私信我一起学习,一起成长!

最最后,如果对你有一点帮助,可否给一个赞?非常感谢哦~~~

Elasticsearch之Template详解_elasticsearchtemplate(1) } } put _template/template_test { “index_patterns”:[“template*”], “order”:1, “settings”:{ “number_of_shards”:1, “number_of_replicas”:3 }, “mappings”:{ “date_detection”:false, “numeric_detection”:true } } put template_index2 get template_index2 { “template_ 阅读详情

相关推荐

SpringBoot整合Elasticsearch详细教程

SpringBoot整合Elasticsearch详细教程

weixin_51040479的博客 1291

SpringBoot整合ElasticSearch

索引数据CRUD操作(一) 在com.yx.respository包下⾃定义ProductRepository接⼝,并继承ElasticsearchRespository接⼝。 1.创建索引数据 批量创建 查询索引数据 根据id查询数据 查询所有数据

weixin_62907807的博客 3611

Spring Boot 整合 Elasticsearch 实践:从入门到上手

Elasticsearch 是一个开源的分布式搜索引擎,广泛用于日志分析、搜索引擎、数据分析等场景。本文将带你通过一步步的教程,在 Spring Boot 项目中整合 Elasticsearch,轻松实现数据存储与查询。

遇见伯灵说的博客 1510

SpringBoot+elasticsearchTemplate实现es索引数据的创建查询删除

通过elasticsearch实现创建索引、创建mapping映射、插入数据、模糊查询索引、查询index所对应的mapping、数据的滚动条件查询、删除指定数据

小高同学要努力吖 7233

Spring Boot整合Elasticsearch,最新最全教程

要想快速入门新技术,英文文档的阅读能力必不可少。本篇文章主要参考《Spring Data Elasticsearch》Spring Boot整合Elasticsearch的官方文档。 Elasticsearch官网参考文档:https://www.elastic.co/guide/index.html Elasticsearch官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch Elasticsearch目前最近版本为:7.10.1 最近系统.

Cloud-Future的博客 10万+

springboot整合全文搜索引擎Elasticsearch | Spring Boot 28

???? Java学习路线配套文章:Java学习路线总结,搬砖工逆袭Java架构师(全网最强) ???? 基础推荐:Java基础教程系列 ???? 实战推荐:Spring Boot基础教程 ???? 简介:Java领域优质创作者????、优快云哪吒公众号作者✌ 、Java架构师奋斗者???? ???? 扫描主页左侧二维码,加入群聊,一起学习、一起进步 ???? 欢迎点赞 ???? 收藏 ⭐留言 ???? 目录一、Elasticsearch简介二、下载与安装1、Elasticsearch官网下载地址2、下

学Java,找哪吒 1万+

《SpringBoot篇》16.SpringBoot整合Elasticsearch

注:公司中大部分也是对于管理日志信息使用es,我们也是,这里做简单的教学,之后会有更加完整的ES学习介绍。说明:ES(Elasticsearch)Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

陈老老老板的博客 2万+

Spring Boot 与 Elasticsearch 搜索引擎整合

数据同步:如何将关系型数据库(如MySQL)中的数据实时同步到ES?查询性能:如何优化复杂查询(如多条件过滤、聚合)的响应时间?分布式一致性:ES集群分片/副本机制下,如何保证数据的可靠性?开发效率:如何避免重复编写ES客户端代码,实现"面向对象"的搜索开发?使用@Document和@Field@Data@Document(indexName = "product", shards = 3, replicas = 2) // 3分片,2副本@Id // 对应ES文档的_id字段。

架构师的AI之路,分享AI应用开发架构的学习与实践。 1173

知识点13--spring boot整合elasticsearch以及ES高亮

本章知识点沿用知识点11的项目,介绍如何使用spring boot整合ES,没有ES的去我主页中可以看到ES如何搭建不管你有没有ES,最好是没有,因为一定要知道一点,一定要去官网查一下你当前用的spring boot data es的版本是不是和你自己ES服务器所匹配的,这一点简直是天坑,spring boot提供的es封装API对es的版本要求相当苛刻,对不上就用不了,很多人折在版本问题,奉劝大家一句,除非正式的项目开发上,团队会给你提供需要版本的jar,正式开发本身版本都是经过架构师仔细考虑并且版本方面

别人笑我太疯癫,我笑他人看不穿。 3220

Spring Boot如何整合Elasticsearch进行全文搜索?一文教你搞定!

🏆本文收录于《滚雪球学Spring Boot》,专门攻坚指数提升,2025 年国内最系统+最强(更新中)。    本专栏致力打造最硬核 Spring Boot 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。

**My Coding Family** 1241

spring boot3整合Elasticsearch 实现快速入门

Elasticsearch是非常强大的一个开源的分布式搜索和分析引擎,是一个Nosql数据库,可以帮助我们从海量数据中快速找到需要的内容。以传统的MySQL数据库为例,要查询一条数据信息,通常是先找到这个数据的id,在顺应的找到这个数据,那么这样就是正向索引或者说普通索引如(select * from user where title like '%手机%')这条查询语句会在user表中,逐条的查看数据,看相应的数据是否符合条件。

2301_78646673的博客 3273

Elasticsearch简介及SpringBoot整合ES实例

Elasticsearch简介 1.1 Elasticsearch(以下简称ES)定义 Elasticsearch 是一个开源的搜索引擎。 建立在全文搜索引擎库 Apache Lucene 基础之上。它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单,通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。 Elasticsearch ...

weixin_42184707的博客 8861

从理论到实践:用CST微波工作室完成单站雷达RCS仿真的完整指南

本文提供了一份利用CST微波工作室进行单站雷达RCS仿真的完整实践指南。文章深入剖析了从求解器选择(重点推荐积分方程法)、模型与材料设置、平面波激励定义到后处理分析的完整逻辑链条,旨在帮助工程师不仅完成仿真,更能理解其背后的物理原理与工程考量,从而高效、精准地评估目标的电磁散射特性。

weixin_29256771的博客 180

Spring Boot整合Elasticsearch完整工具类实现(附完整代码示例)

本文介绍了在JDK 1.8环境下将Elasticsearch 7.9.3整合到Spring Boot 2.3.12项目中的完整方案。内容包括环境准备、Maven/Gradle依赖配置、Elasticsearch连接参数设置,以及核心配置类的实现。通过Spring Data Elasticsearch提供的RestHighLevelClient,开发者可以便捷地实现CRUD、复杂查询、聚合分析等核心功能。

J_liaty的博客 1667

【AI】使用Cursor和AI编程生成的VUE前端框架

本项目是一个基于VUE.js的前端框架,结合了登录、图形验证码、权限校验等常用功能模块。通过与Cursor AI交互生成的代码,展示了AI在编程中的潜力与效率。

清欢渡的博客 9860

用Python和NumPy搞定复合材料层合板ABD矩阵计算(附完整代码与避坑指南)

本文详细介绍了如何使用Python和NumPy高效计算复合材料层合板的ABD刚度矩阵,包括单层板刚度计算、偏轴转换和层合板刚度集成。通过完整的代码示例和工程实践技巧,帮助工程师快速构建定制化分析工具,解决航空航天、汽车制造等领域的复合材料力学性能分析问题。特别提供了避坑指南和性能优化策略,确保计算结果的准确性和效率。

weixin_30752699的博客 277

Springboot整合spring-boot-starter-data-elasticsearch

spring-data-elasticsearch的查询,相当于原生的es依赖而言,多了一些注解封装、repository类等,但是对于复杂查询还是没有办法很简便,因此便有了第三方的依赖Easy-es的诞生,类似于Mybatis-plus的方式,对于新手对es的使用比较友好,后面会进行讲解最后:我是Walker,一个热爱分享的程序员,希望我的输出能够帮助到你。

Think_and_work的博客 1908

MTK6769平台Type-C充电全解析:从硬件管脚到PD协议实战(Android15环境)

本文深入解析了MTK6769平台在Android 15环境下Type-C充电的完整链路。从硬件管脚(特别是核心的CC引脚)功能与连接,到USB-PD协议报文抓取与实战分析,并结合MTK平台PD芯片驱动与充电IC驱动的软件框架,提供了从硬件设计到软件调试的系统性解决方案和常见问题排查案例。

ol78901234的博客 311

Windows安装Elasticsearch及Spring Boot整合ES教程

通过以上步骤,我们实现了在Windows系统上安装Elasticsearch,并在Spring Boot中完成了与Elasticsearch的整合。

qq_56694800的博客 2194

保姆级教程:用Cesium的Primitive API实现火箭发射全流程动画(含代码避坑)

本文详细介绍了如何使用Cesium的Primitive API实现火箭发射全流程动画,包括模型控制、关节动画和精细时序管理。通过实战代码示例和性能优化技巧,帮助开发者高效构建高复杂度航天仿真系统,显著提升三维可视化效果与运行效率。

weixin_42565652的博客 212

AXI2APB_bridge 设计

此处研究AHB Slave到 APB master的桥接器,实现接口转化,例如下图之后是参数描述

Starry__的博客 4036

Spring boot 整合elasticsearch

输入这个命令等待执行就ok了 logstash.bat -f logstash.conf。可以直接在这里输入cmd直接进入这个目录。在bin目录下有一个 conf文件。这里定时任务多长时间执行一次。

2401_86799237的博客 2350

5 分钟上手 Kimi Work:安装、配置、跑通第一个任务

这篇文章提供了Kimi Work的快速入门指南,帮助用户在5分钟内完成从安装到运行第一个任务的全过程。主要内容包括: 安装步骤: macOS用户下载.dmg文件并拖入Applications Windows用户下载.exe安装包,需注意中文路径问题 初始设置: 使用现有Kimi账号登录 检查任务配额和文件访问权限 首个任务推荐: 建议从简单的本地文件整理开始(如按类型分类桌面文件) 详细说明了任务执行流程和审批机制 常见问题: 计划生成卡顿的解决方法 文件无变化的排查步骤 进阶建议: 提供难度递增的后续任务

sg_knight的专栏 2778

Spring Boot整合Elasticsearch

✌️大厂。

Yaml4的博客 2671

使用 Azure DevSecOps 和 AIOps 构建可扩展且安全的多区域金融科技 SaaS 平台

这家虚构的金融科技 SaaS 组织在 Microsoft Azure 上构建了一个现代化的多区域架构,以实现高可用性、主动安全性和简化的 DevSecOps 工作流。如果您是 DevOps 从业者、SRE 专业人士或致力于创建弹性、可扩展且安全的金融科技解决方案的技术领导者,您将从中获得可直接应用于您自身项目的见解和经验教训。与大多数快速扩张的金融科技公司一样,他们需要确保不间断的正常运行时间、坚不可摧的安全性以及快速的功能交付,以满足全球用户群的需求。即使是短暂的中断也会损害用户的信心和忠诚度。

介绍AWS Azure GCP devops Terraform 等技术 1298

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Spring Boot整合Elasticsearch及工具类封装

通过// 连接超时时间(毫秒)// 请求超时时间// Getter和Setter省略通过封装的Spring Boot Starter,开发者可以快速集成ES功能,同时通过工具类屏蔽底层API的复杂性。本文提供的方案支持灵活配置、多数据源管理和生产级优化,适用于中大型项目。异步操作支持:封装RestClient的异步API。索引生命周期管理:自动创建/更新索引。监控集成:对接Prometheus监控ES性能指标。

qq_39515858的博客 1069

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: CentOS下安装Elasticsearch及可视化插件详细教程
下一篇: Axure教程 | 自适应视图
Hugh Pro
博客等级 码龄16年 6粉丝 22原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值