A component required a bean of type 'org.elasticsearch.client.RestHighLevelClient'

A component required a bean of type 'org.elasticsearch.client.RestHighLevelClient' that could not be found.

这个错误通常发生在使用Spring框架集成Elasticsearch时。错误提示信息指出,你的应用程序中需要一个名为 'org.elasticsearch.client.RestHighLevelClient' 的bean,但是找不到该bean。

这个错误通常是由于缺少必要的依赖或配置文件引起的。要解决这个问题,可以采取以下步骤:

确认你的应用程序的依赖中是否包含elasticsearch的依赖,如果没有,请将其添加到pom.xml文件或build.gradle文件中。

确认你的应用程序的配置文件中是否包含Elasticsearch的配置信息。你需要配置Elasticsearch的地址、端口号、索引等信息,以便应用程序能够正确地连接到Elasticsearch服务器。

确认你的应用程序中是否定义了RestHighLevelClient的bean。你需要在Spring的配置文件中添加一个bean,用于创建RestHighLevelClient对象,并注入到其他需要使用该对象的组件中。

如果你已经完成了上述步骤,但仍然遇到该错误,请检查你的配置是否有误,或者尝试清理一下你的应用程序并重新构建

  • 请看👉 :Java查询Elasticsearch(RestHighLevelClient)
  • 除此之外, 这篇博客: springBoot 整合elasticsearch7.6中的 3.配置RestHighLevelClient 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 我们使用RestHighLevelClient 来操作elasticsearch

    package org.java.demo.config;
    
    import org.elasticsearch.client.RestHighLevelClient;
    import org.springframework.context.annotation.Bean;
    import org.springframework.data.elasticsearch.client.ClientConfiguration;
    import org.springframework.data.elasticsearch.client.RestClients;
    import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
    
    public class RestClientConfig extends AbstractElasticsearchConfiguration {
    
        @Override
        @Bean
        public RestHighLevelClient elasticsearchClient() {
    
            final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
                    .connectedTo("localhost:9200")
                    .build();
    
            return RestClients.create(clientConfiguration).rest();
        }
    }
    

    创建索引对象

    package org.java.demo;
    
    import org.springframework.data.annotation.Id;
    import org.springframework.data.elasticsearch.annotations.Document;
    import org.springframework.data.elasticsearch.annotations.Field;
    
    import java.io.Serializable;
    
    
    @Document(indexName = "javashop")
    public class GoodsIndex implements Serializable {
    
    
        @Id
        private Integer goodsId;
    
    
    
        @Field(analyzer = "ik_max_word")
        private String goodsName;
    
        /**
         * 农贸市场ID
         * */
        private String connet;
    
        public GoodsIndex() {
    
        }
        public String getConnet() {
            return connet;
        }
    
        public void setConnet(String connet) {
            this.connet = connet;
        }
        public Integer getGoodsId() {
            return goodsId;
        }
    
        public void setGoodsId(Integer goodsId) {
            this.goodsId = goodsId;
        }
    
        public String getGoodsName() {
            return goodsName;
        }
    
        public void setGoodsName(String goodsName) {
            this.goodsName = goodsName;
        }
    
        @Override
        public String toString() {
            return "GoodsIndex{" +
                    "goodsId=" + goodsId +
                    ", goodsName='" + goodsName + '\'' +
                    ", connet='" + connet + '\'' +
                    '}';
        }
    }
    

    在这里插入图片描述