elasticsearch,spring-boot,Java,Spring,elasticsearch,Spring Boot" /> elasticsearch,spring-boot,Java,Spring,elasticsearch,Spring Boot" />

Java 连接到spring启动应用程序中现有ElasticSearch实例时出现问题

Java 连接到spring启动应用程序中现有ElasticSearch实例时出现问题,java,spring,elasticsearch,spring-boot,Java,Spring,elasticsearch,Spring Boot,我有一个本地运行的elasticsearch实例。 我有一个spring启动应用程序。 在我的应用程序中,我有一个服务ServiceX,它包含一个扩展了ElasticsearchRepository的elasticsearch存储库。 所以 服务X包含 YRepository扩展了ElasticsearchRepository 我有一个本地运行的elasticsearch实例 我的弹性搜索设置是 ELASTICSEARCH (ElasticsearchProperties) spring.dat

我有一个本地运行的elasticsearch实例。 我有一个spring启动应用程序。 在我的应用程序中,我有一个服务ServiceX,它包含一个扩展了ElasticsearchRepository的elasticsearch存储库。 所以 服务X包含 YRepository扩展了ElasticsearchRepository

我有一个本地运行的elasticsearch实例

我的弹性搜索设置是

ELASTICSEARCH (ElasticsearchProperties)
spring.data.elasticsearch.properties.http.enabled=true
spring.data.elasticsearch.properties.host = localhost
spring.data.elasticsearch.properties.port = 9300
启动应用程序时,将创建elasticsearch模板。 使用的客户端是NodeClient。 NodeClient的设置如下:

"http.enabled" -> "true"
"port" -> "9300"
"host" -> "localhost"
"cluster.name" -> "elasticsearch"
"node.local" -> "true"
"name" -> "Human Robot"
"path.logs" -> "C:/dev/git/xxx/logs"
elasticsearch(本例中为人类机器人)的名称与正在运行的本地elasticsearch实例(本例中为Nikki)不匹配

看起来是这样 1.创建logstash的新实例 2.创建logstash的嵌入式实例

我搜索了很多信息,但找不到任何有帮助的文档

请大家建议使用什么设置好吗?
谢谢。

我相信您不希望使用NodeClient,而是希望使用TransportClient,除非您希望您的应用程序成为集群的一部分

我相信您有以下依赖性:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artificatId>spring-boot-starter-data-elasticsearch</artificatId>
</dependency>
还要检查Spring引导指南中的ElasticSearch,特别是关于Spring.data.ElasticSearch.cluster-nodes的部分。如果您放置多个以逗号分隔的主机端口列表,它将生成一个TransportClient,而不是您的选择


试试看,希望对你有帮助。谢谢。你相信我在看到你的帖子之前就开始尝试使用配置文件了吗。我添加了一个配置类

@Configuration
public class ElasticSearchConfig {

    @Bean
    public Client client() {
      TransportClient client = new TransportClient();
      TransportAddress address = new InetSocketTransportAddress(
              "localhost",9300);
      client.addTransportAddress(address);
      return client;
  }
}
客户机现在被注入elasticsearch模板(因此不需要ElasticSearchTemplatebean)

我在尝试连接时出错,但这是由于elasticsearch 2.2.0造成的,我使用elasticsearch 1.7.3进行了尝试,现在可以解决下一个问题了

@Configuration
public class ElasticSearchConfig {

    @Bean
    public Client client() {
      TransportClient client = new TransportClient();
      TransportAddress address = new InetSocketTransportAddress(
              "localhost",9300);
      client.addTransportAddress(address);
      return client;
  }
}