gpt4 book ai didi

java - Elasticsearch :将客户端传输到高级其余客户端

转载 作者:行者123 更新时间:2023-12-02 22:45:48 24 4
gpt4 key购买 nike

我正在尝试建立与本地 flex 搜索实例的连接。

以前,我使用传输客户端来创建

  • Controller 。
  • 配置
  • 加载程序(使用@PostConstruct)
  • 存储库(扩展了ElasticSearchRepositores)
  • 实体(@Document注释)

  • 我尝试使用HighLevel Rest Client实现相同的功能。

    以下是我的组件:
    @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;
    }


    }

    当我从配置文件中删除@EnableElasticsearchRepositories时,一切正常。但是,当我添加相同的内容时,出现以下错误:
    Consider defining a bean named 'elasticsearchTemplate' in your configuration.

    我使用传输客户端时解决此问题的一种方法是简单地添加:
    @Bean
    ElasticsearchOperations elasticsearchTemplate() throws Exception {
    return new ElasticsearchTemplate(client());
    }


    在我的配置中。但是,使用高级客户端时,客户端方法会显示错误,因为它属于客户端类型。

    请让我知道是否有什么办法可以解决此问题。

    提前致谢。

    最佳答案

    新的Spring Data ElasticSearch升级了他们的方法。所以代替:

    @Bean
    ElasticsearchOperations elasticsearchTemplate() throws Exception {
    return new ElasticsearchTemplate(client());
    }

    应该是:
    @Bean
    ElasticsearchOperations elasticsearchTemplate() throws Exception {
    return new ElasticsearchRestTemplate(client());
    }

    关于java - Elasticsearch :将客户端传输到高级其余客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54782492/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com