2014-01-07 32 views
0

我无法弄清楚如何使用这个插件。
我运行这个curl使用JDBC River无法从ElasticSearch获得任何结果

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在运行背景。

回答

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" 
    } 
}' 
1

其中之一,我会安装elasticsearch head它可以非常有用的检查您的群集。

你可以得到统计所有指标:

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

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

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

你应该能够搜索所有指数是这样的:

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

如果什么都没有显示,你的河流可能不工作,我会检查你的日志,看看是否有任何错误出现。

+0

我mconlin同意,elasticsearch头是一个伟大的有你的指数,数据和状态的概述。 – Nate

-1

我写了一篇关于使用这个插件的快速文章,希望能给你更多的见解 - 该文章位于here

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