[英]Elastic Search: Transport Client to High Level Rest Client
I am trying to establish a connection to my local Elastic Search Instance. 我正在尝试建立到本地弹性搜索实例的连接。
Previously, I used transport client to create 以前,我使用传输客户端来创建
I tried to achieve the same functionality using HighLevel Rest Client. 我尝试使用HighLevel Rest Client实现相同的功能。
Following are my components: 以下是我的组件:
@Configuration
@EnableElasticsearchRepositories(basePackages = "com.abd.def.hig.monitor.repo")
public class ElasticsearchConfig {
@Bean(destroyMethod = "close")
public RestHighLevelClient client() {
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost",9200,"http")));
// System.out.println("client is" + client.indices().get());
return client;
}
}
public interface ElasticSearchRepo extends ElasticsearchRepository<Store,Long> {
}
package com.fg.pos.tpdjavaagent.monitor.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import com.fg.pos.tpdjavaagent.monitor.model.ApplicationStats;
@Document(indexName = "storedtls", type = "storedtls")
public class Store {
@Id
String siteCode;
String siteName;
String formatCode;
String zone;
String posType;
String ipAddress;
String tpAdmin;
String applicationVersion;
String osType;
String ISPType;
public Store(String siteCode, String siteName, String formatCode, String zone, String posType, String ipAddress,
String tpAdmin, String applicationVersion, String osType, String iSPType,
ApplicationStats applicationStats) {
super();
this.siteCode = siteCode;
this.siteName = siteName;
this.formatCode = formatCode;
this.zone = zone;
this.posType = posType;
this.ipAddress = ipAddress;
this.tpAdmin = tpAdmin;
this.applicationVersion = applicationVersion;
this.osType = osType;
ISPType = iSPType;
this.applicationStats = applicationStats;
}
ApplicationStats applicationStats;
public String getSiteCode() {
return siteCode;
}
public void setSiteCode(String siteCode) {
this.siteCode = siteCode;
}
public String getSiteName() {
return siteName;
}
public void setSiteName(String siteName) {
this.siteName = siteName;
}
public String getFormatCode() {
return formatCode;
}
public void setFormatCode(String formatCode) {
this.formatCode = formatCode;
}
public String getZone() {
return zone;
}
public void setZone(String zone) {
this.zone = zone;
}
public String getPosType() {
return posType;
}
public void setPosType(String posType) {
this.posType = posType;
}
public String getIpAddress() {
return ipAddress;
}
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
public String getTpAdmin() {
return tpAdmin;
}
public void setTpAdmin(String tpAdmin) {
this.tpAdmin = tpAdmin;
}
public String getApplicationVersion() {
return applicationVersion;
}
public void setApplicationVersion(String applicationVersion) {
this.applicationVersion = applicationVersion;
}
public String getOsType() {
return osType;
}
public void setOsType(String osType) {
this.osType = osType;
}
public String getISPType() {
return ISPType;
}
public void setISPType(String iSPType) {
ISPType = iSPType;
}
public ApplicationStats getApplicationStats() {
return applicationStats;
}
public void setApplicationStats(ApplicationStats applicationStats) {
this.applicationStats = applicationStats;
}
}
When I remove @EnableElasticsearchRepositories from the config file, everything works fine. 当我从配置文件中删除@EnableElasticsearchRepositories时,一切正常。 However, when I add the same, I get the error stated below: 但是,当我添加相同的内容时,出现以下错误:
Consider defining a bean named 'elasticsearchTemplate' in your configuration.
One way around to resolve this issue when I used transport client was to simply add: 当我使用传输客户端时解决此问题的一种方法是简单地添加:
@Bean
ElasticsearchOperations elasticsearchTemplate() throws Exception {
return new ElasticsearchTemplate(client());
}
Inside my configurations. 在我的配置中。 However, the client method shows error when High Level Client is used because it is of Client type. 但是,使用高级客户端时,客户端方法会显示错误,因为它属于客户端类型。
Please let me know if anything is possible to fix this. 请让我知道是否有可能解决此问题。
Thanks in advance. 提前致谢。
New Spring Data ElasticSearch Upgraded their method. 新的Spring Data ElasticSearch升级了他们的方法。 So instead of: 所以代替:
@Bean
ElasticsearchOperations elasticsearchTemplate() throws Exception {
return new ElasticsearchTemplate(client());
}
It is supposed to be: 应该是:
@Bean
ElasticsearchOperations elasticsearchTemplate() throws Exception {
return new ElasticsearchRestTemplate(client());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.