当前位置: 首页 > 知识库问答 >
问题:

Spring Data ElasticSearch-无法连接到节点

司马宏邈
2023-03-14

我试图在Spring MVC应用程序中配置ElasticSearch存储库。我使用Spring Data ElasticSearch版本:2.0.7和ElasticSearch Server 2.4.4。

我确信ElasticNode可以工作,下面是示例输出

$ curl -X GET http://127.0.0.1:9200/
{
  "name" : "Tattoo",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "dX0lPfNnSA6vxGqhzVEuSg",
  "version" : {
    "number" : "2.4.4",
    "build_hash" : "fcbb46dfd45562a9cf00c604b30849a6dec6b017",
    "build_timestamp" : "2017-01-03T11:33:16Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}

这是我的测试配置

@Configuration
@EnableElasticsearchRepositories(basePackages = "com.somepackage.repo.elastic")
public class ElasticSearchConfig {

@Bean
public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException {
    return new ElasticsearchTemplate(nodeClient());
}

@Bean
public TransportClient nodeClient() throws UnknownHostException {

    Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();
    TransportClient client = TransportClient.builder()
            .settings(settings)
            .build();
    client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9200));
    return client;

}
}

我得到的错误,应用程序无法连接到弹性节点,堆栈跟踪

2017-02-17 23:34:53 INFO  transport:383 - [Impulse] failed to get node info for {#transport#-1}{127.0.0.1}{localhost/127.0.0.1:9200}, disconnecting...
ReceiveTimeoutTransportException[[][localhost/127.0.0.1:9200][cluster:monitor/nodes/liveness] request_id [1] timed out after [5002ms]]
    at org.elasticsearch.transport.TransportService$TimeoutHandler.run(TransportService.java:645)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

我试图从1.7.1, 2.4.4和5.2.1更改弹性搜索节点的版本。没有任何工作。Spring MVC 4.3.6。发布Java8

共有2个答案

辛渝
2023-03-14

简而言之:ElasticSearch节点和TransportClient应该具有相同的版本。

Spring Data ElasticSearch在2.2.0版中提供了TransportClient。我在2.4.4版本中使用了ElasticSearch节点。我将ES节点降级为2.2.0,并在配置中将端口从9200更改为9300。

宓英哲
2023-03-14

传输客户端通过端口9300与elasticsearch对话。所以试试看

client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
 类似资料:
  • null V: BrowserTimeout:0 调试:false DownPollingLimit:2 集线器:http://jenkins主机:jenkins端口 ID:http://node ip:node端口 null 异常的第一行说它无法解析某些东西,但我不能理解什么? 我是不是漏掉了什么?我是第一次做网格设置。

  • 问题内容: 事实证明,这是对python的粗略过渡。这里发生了什么?: 输出文件如下所示: 然后我得到这个错误: 问题答案: 返回一个字节串。 在Python 3中,unicode()对象与对象之间没有隐式转换。如果您知道输出的编码,则可以使用它来获取字符串,也可以将要添加的内容转换为

  • 我使用他们的web UI在EMR上创建了一个AWS Spark2.2集群(这里是新手)。我知道我需要连接到主节点,以便开始发出pyspark命令来学习Spark。但是,当我尝试连接到主节点时,它给我一个错误。在浏览了internet之后,我发现使用可能有助于调试正在进行的操作,但我找不到任何有用的信息。下面是我的ssh调试日志。 有人能指出这里的问题是什么吗?编辑:我已经尝试过将端口22添加到安全

  • 问题内容: 我正在尝试使用Ruby on Rails运行Selenium的示例脚本。我必须使用代理运行它。这是我的代码: 我收到以下错误: 有人能帮我吗…?我已经尝试了好几个小时,却找不到问题…真的不知道该怎么办。 环境: Ubuntu 16.04 LTS,Firefox 45.0,rbenv 2.3.1 另一个问题:有人知道Selenium + Ruby on Rails的示例吗?我找不到真正好

  • 我正在尝试连接到MySQL服务器,但出现无法处理的错误。 java.sql.SQLNonTransientConnectionException:无法创建到数据库服务器的连接。尝试重新连接3次。放弃。com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)com.mysql.cj.jdbc.excepti

  • 我真的想不通为什么我不能用下面的代码连接到我的Django项目内的JQuery。你能告诉我是什么原因吗?多谢! null null