2014-01-07 25 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