嘿~ 今天天气不错嘛

spring(不是springboot)项目中使用es怎样做resthighlevel的xml配置,

Elasticsearch | 作者 heheidiot | 发布于2021年08月01日 | 阅读数:1464

spring(不是springboot)项目想使用es的resthighlevel,项目需要进行xml配置,该如何配置并使用呀。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
已邀请:

yuechen323 - 晨儿哥

赞同来自: tanshaozhi

自己弄个 factoryBean, 所有逻辑都写在 getObject 里面,  然后 xml 中声明这个 bean

tongchuan1992 - 学无止境、学以致用

赞同来自:

在xml中增加一个beat id=... ,class=....

heheidiot - 90后it女

赞同来自:

可以方便提供下详细的配置吗?spring用的4.3.22版本。

tanshaozhi

赞同来自:

其实主要就是要构造出 RestHighLevelClient 可以参考这个 我这是只打算在一个类中使用。用处多可以定义bean。
/**
* @Description: XXXEsRepositoryImpl
* @Author: tsz
*/
@Repository public class XXXEsRepositoryImpl{

@Value("${elasticsearch.index.sensitive}")
private String esIndex;
@Value("${elasticsearch.username}") private String esUserName;
@Value("${elasticsearch.password}") private String esPassword;
@Value("${elasticsearch.host}") private String esHost;
@Value("${elasticsearch.port}") private int esPort;
@Value("${elasticsearch.connTimeout}") private int connTimeout;
@Value("${elasticsearch.socketTimeout}") private int socketTimeout;
@Value("${elasticsearch.connectionRequestTimeout}") private int connectionRequestTimeout;

private RestHighLevelClient restHighLevelClient;

@PostConstruct
public void init(){
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
// 设置密码
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esUserName, esPassword));
RestClientBuilder builder = RestClient.builder(new HttpHost(esHost, esPort)).setRequestConfigCallback(
requestConfigBuilder -> requestConfigBuilder.setConnectTimeout(connTimeout).setSocketTimeout(socketTimeout)
.setConnectionRequestTimeout(connectionRequestTimeout))
.setHttpClientConfigCallback(f -> f.setDefaultCredentialsProvider(credentialsProvider));
this.restHighLevelClient = new RestHighLevelClient(builder);
}
}

要回复问题请先登录注册