Elasticsearch |未能创造河流

时间:2015-01-09 09:47:48

标签: mysql elasticsearch jdbc driver elasticsearch-river

我是Elasticsearch的新手,并尝试在我的OS X上运行它,但最终我没有创建一条河。

我仍然对此感到困惑,但我会尽量提供尽可能多的信息。

我安装了什么:

Elasticsearch 1.4.2
elasticsearch-river-jdbc-2.3.1.jar
mysql-connector-java-5.1.33-bin.jar

我是怎么做的:

curl -XPUT 'localhost:9200/_river/search_river_1/_meta' -d '{
    "type" : "jdbc",
    "jdbc" : {
        "url" : "jdbc:mysql://localhost:3306/licklist",
        "user" : "my_user",
        "password" : "my_password",
        "sql" : "select sv.*, 16 AS weight from search_venues sv",
        "index" : "search",
        "type" : "Venue",
        "max_bulk_requests" : 5,
        "bulk_flush_interval" : "50s"
    }
}'

响应是:

{
  "_index": "_river",
  "_type": "search_river_1",
  "_id": "_meta",
  "_version": 6,
  "created": false
}

当我查看日志时,我看到了这一点:

[2015-01-09 08:51:23,179][INFO ][cluster.metadata         ] [Paradigm] [_river] creating index, cause [auto(index api)], shards [1]/[1], mappings [search_river_1]
[2015-01-09 08:51:24,685][INFO ][cluster.metadata         ] [Paradigm] [_river] update_mapping            [search_river_1] (dynamic)
[2015-01-09 08:51:25,064][WARN ][river                    ] [Paradigm] failed to create river [jdbc][search_river_1]
org.elasticsearch.common.inject.CreationException: Guice creation errors:

1) Error injecting constructor, java.lang.NoSuchMethodError:     org.xbib.elasticsearch.river.jdbc.RiverSource.driver(Ljava/lang/String;)Lorg/xbib/elasticsearch/river/jd    bc/RiverSource;
  at org.xbib.elasticsearch.river.jdbc.JDBCRiver.<init>(Unknown Source)
  while locating org.xbib.elasticsearch.river.jdbc.JDBCRiver
  while locating org.elasticsearch.river.River

谢谢

修改 日志中的另一行:

Caused by: java.lang.NoSuchMethodError: org.xbib.elasticsearch.river.jdbc.RiverSource.driver(Ljava/lang/String;)Lorg/xbib/elasticsearch/river/jdbc/RiverSource;

1 个答案:

答案 0 :(得分:1)

检查您的Mongo版本。

我遇到过类似的问题。根据我的经验,这是因为没有遵循兼容性矩阵 - 对哪些版本的河流采用什么版本的elasticsearch有严格的要求。即使是elasticsearch-mapper-attachments插件的版本也需要匹配。

由于您使用的是ES 1.4.2 - 我确保您至少运行了MongoDB 2.6.6。在我的Mac上,我使用Mongo 2.6.7和elasticsearch-mapper-attachments 2.4.1运行1.4.2。

这是你在进行任何进一步的故障排除之前需要做的最小的事情,否则你会把你的头发拉出来,因为抛出的每个Java异常都会导致你越来越远离兔子洞。

以下是链接:
https://github.com/elasticsearch/elasticsearch-mapper-attachments https://github.com/richardwilly98/elasticsearch-river-mongodb