yujian
2020-01-07 b4e46b2f4e06cfb5ce32f5bb1cca55ca637776e8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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;
    }
}