无法使用JDBC River从ElasticSearch获得任何结果

时间:2014-01-07 01:57:22

标签: plugins jdbc elasticsearch elasticsearch-jdbc-river

我根本无法弄清楚如何使用这个插件。
我正在运行此curl

curl -XPUT 'localhost:9200/_river/faycare_kids/_meta' -d '{
  "jdbc":{
      "driver" : "org.postgresql.Driver",
      "url" : "jdbc:postgresql://localhost:5432/faycare",
      "user" : "faycare",
      "password" : "password",
      "strategy" : "simple",
      "poll" : "5s",
      "scale" : 0,
      "autocommit" : true,
      "fetchsize" : 10,
      "index" : "faycare",
      "type" : "kid",
      "max_rows" : 0,
      "max_retries" : 3,
      "max_retries_wait" : "10s",
      "sql"   : "SELECT kid.id as _id,kid.first_name,kid.last_name FROM kid;"
  }
}'

它返回:

{"ok":true,"_index":"_river","_type":"faycare_kids","_id":"_meta","_version":1}

如何搜索/获取/查看我的数据?

如何知道是否有索引?

我尝试了很多东西:

curl -XGET 'localhost:9200/_river/faycare_kids/_search?pretty&q=*'

这会向我提供有关_river

的信息
curl -XGET 'localhost:9200/faycare/kid/_search?pretty&q=*'

这告诉我:"error" : "IndexMissingException[[faycare] missing]"

我正在运行sudo service elasticsearch start以在后台运行它。

4 个答案:

答案 0 :(得分:1)

首先,我会安装elasticsearch head,它对于检查群集非常有用。

您可以获取所有指数的统计数据:

curl -XGET 'http://localhost:9200/_all/_status'

您可以检查索引是否存在:

curl -XHEAD 'http://localhost:9200/myindex'

你应该能够搜索所有这样的索引:

  curl -XGET 'localhost:9200/_all/_search?q=*'

如果没有显示任何内容,您的河流可能无法正常工作,我会检查您的日志,看看是否有任何错误。

答案 1 :(得分:0)

我感谢您的所有帮助。 elastic-head确实给了我一些见解。显然,我的JSON出了问题。出于某种原因,当我将JSON更改为此时,它起作用了:

curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{
      "type" : "jdbc",
      "jdbc" : {
          "driver" : "org.postgresql.Driver",
          "url" : "jdbc:postgresql://localhost:5432/faycare",
          "user" : "faycare",
          "password" : "hatpants",
          "index" : "jdbc",
          "type" : "jdbc"
          "sql"   : "SELECT kid.id as _id,kid.first_name,kid.last_name FROM kid;"
      }
 }'

我不确定具体需要改变什么来使这项工作,但现在确实有效。我猜这是需要添加的外jdbc。我猜我可以更改内部indextype

答案 2 :(得分:0)

问题在于你设置河流的方式。您可以指定并索引和键入河流应该在错误的位置批量索引记录的位置。

这样做的正确方法是:

curl -XPUT 'localhost:9200/_river/faycare_kids/_meta' -d '{
  "type" : "jdbc",
  "jdbc":{
      "driver" : "org.postgresql.Driver",
      "url" : "jdbc:postgresql://localhost:5432/faycare",
      "user" : "faycare",
      "password" : "password",
      "strategy" : "simple",
      "poll" : "5s",
      "scale" : 0,
      "autocommit" : true,
      "fetchsize" : 10,
      "max_rows" : 0,
      "max_retries" : 3,
      "max_retries_wait" : "10s",
      "sql"   : "SELECT kid.id as _id,kid.first_name,kid.last_name FROM kid;"
  },
  "index":{
      "index" : "faycare",
      "type" : "kid"
  }
}'

答案 3 :(得分:-1)

我写了一篇关于使用此插件的快速文章,希望能够为您提供更多信息 - 帖子位于here