yujian
2020-01-07 b4e46b2f4e06cfb5ce32f5bb1cca55ca637776e8
elatic
1个文件已添加
83 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/service/manger/ElasticManger.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/manger/ElasticManger.java
New file
@@ -0,0 +1,83 @@
package com.yeshi.fanli.service.manger;
import javax.annotation.Resource;
import org.apache.http.Header;
import org.apache.http.HeaderElement;
import org.apache.http.HttpHost;
import org.apache.http.ParseException;
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.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestClientBuilder.HttpClientConfigCallback;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.stereotype.Component;
@Component
public class ElasticManger {
    @Resource(name = "httpHostbean")
    private HttpHost httpHost;
    // 初始化api客户端
    public static RestHighLevelClient client = null;
    public RestHighLevelClient getClient() {
        if (client == null) {
            final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            credentialsProvider.setCredentials(AuthScope.ANY,
                    new UsernamePasswordCredentials("elastic", "banliapp2019"));
            RestClientBuilder builder = RestClient.builder(httpHost)
                    .setHttpClientConfigCallback(new HttpClientConfigCallback() {
                        @Override
                        public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                            return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                        }
                    });
            Header hear[] = new Header[] { new Header() {
                    @Override
                    public String getValue() {
                        return "application/json; charset=UTF-8";
                    }
                    @Override
                    public String getName() {
                        return "Content-Type";
                    }
                    @Override
                    public HeaderElement[] getElements() throws ParseException {
                        return null;
                    }
                }, new Header() {
                    @Override
                    public String getValue() {
                        return "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7";
                    }
                    @Override
                    public String getName() {
                        return "Accept-Language";
                    }
                    @Override
                    public HeaderElement[] getElements() throws ParseException {
                        return null;
                    }
                },
            };
            builder.setDefaultHeaders(hear);
            client = new RestHighLevelClient(builder);
        }
        return client;
    }
}