springboot 2.0.2 集成 elasticsearch 7.3

Java High Level REST Client 操作elasticsearch

1、添加maven依赖

<dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>3.2.2.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.elasticsearch.client</groupId>
                    <artifactId>transport</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.elasticsearch.plugin</groupId>
                    <artifactId>transport-netty4-client</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.elasticsearch.client</groupId>
                    <artifactId>elasticsearch-rest-high-level-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>7.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.3.0</version>
        </dependency>

2、初始化elasticsearch

import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * @Author tengpt
 * @Date 2019/11/28 16:01
 */
@Slf4j
@Configuration
public class ElasticConfig {

    String host = "172.17.0.1";

    int port = 9200;

    String clusterName = "elastic";

    String password = "123456";

    @Autowired
    private SettingService settingService;

    public ElasticConfig() {
    }

    @Bean(name = "elasticSearchClient")
    public RestClientBuilder getRestClientBuilder() {
        try {
            List<Setting> hostList = settingService.findAllByName("ES_HOST");
            List<Setting> portList = settingService.findAllByName("ES_PORT");
            List<Setting> nameList = settingService.findAllByName("ES_USER");
            List<Setting> pwdList = settingService.findAllByName("ES_PASSWORD");

            if (!hostList.isEmpty()) {
                host = hostList.get(0).getValue();
            }

            if (!portList.isEmpty()) {
                port = Integer.valueOf(portList.get(0).getValue());
            }

            if (!nameList.isEmpty()) {
                clusterName = nameList.get(0).getValue();
            }

            if (!pwdList.isEmpty()) {
                password = pwdList.get(0).getValue();
            }

        } catch (Exception e) {
            log.warn("es初始化配置信息获取失败:{}", e.getStackTrace());
        }

        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(clusterName, password));
        RestClientBuilder builder = RestClient.builder(new HttpHost(host, port))
                .setHttpClientConfigCallback(httpAsyncClientBuilder -> httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider));

        return builder;
    }

    @Bean
    public RestHighLevelClient restHighLevelClient() {
        return new RestHighLevelClient(getRestClientBuilder());
    }

}

建议遇到问题先翻阅官网。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容