弹性搜索 |未能创建河流

Elasticsearch | failed to create 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;

检查您的 Mongo 版本。

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

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

这是您在进一步进行故障排除之前需要做的最起码的工作,否则您将大吃一惊,因为抛出的每个 Java 异常都会让您越陷越深。

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