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;
|
}
|
}
|