如何在elasticsearch河流插件的帮助下从elasticsearch服务器索引couchdb,从而获得JSON数据

时间:2015-02-09 18:58:25

标签: json indexing elasticsearch couchdb elasticsearch-plugin

我正在研究数据的图形表示。该图接受JSON数据,因此我需要从couchdb获取所需的数据。我使用elasticsearch服务器索引couchdb,因此检索所需的数据。 我正在使用elasticsearch河流插件将couchdb和elasticsearch服务器组合在一起。

我创建了CouchDB数据库'testdb'并为其创建了一些测试文档。 使用数据库设置elasticsearch。 在通过使用默认搜索条件编写CURl GET命令来测试相同内容时,我们必须使“总命中数”大于0,并且“命中”必须对搜索条件具有一些响应值。 但是我们将“总命中率”设为0和“命中”:[](即为空)

我遵循的程序。

1)已下载并安装了couchdb最新版本

2)已验证CouchDB正在运行

  

curl localhost:5984

I got response that starts with:

{"couchdb":"Welcome"...

3)已下载的ElasticSearch和已安装的服务

  

service.bat install

     

curl http://127.0.0.1:9200

I got response as


{ "ok" : true, "status" : 200,..... 

4)为ElasticSearch 1.4.2安装了CouchDB River插件

  

plugin -install elasticsearch / elasticsearch-river-couchdb / 2.4.1

5)创建CouchDB数据库和ElasticSearch索引

  

curl -X PUT“http://127.0.0.1:5984/testdb

6)创建一些测试文档:

  

curl -X PUT“http://127.0.0.1:5984/testdb/1” - d“{\”name \“:\”我的   名称1 \“}”
  curl -X PUT“http://127.0.0.1:5984/testdb/2” - d   “{\”name \“:\”我的名字2 \“}”
  卷曲-X PUT   “http://127.0.0.1:5984/testdb/3” - d“{\”name \“:\”我的名字3 \“}”
  卷曲   -X PUT“http://127.0.0.1:5984/testdb/4” - d“{\”name \“:\”我的名字4 \“}”

7)使用数据库设置ElasticSearch

  

curl -X PUT“127.0.0.1:9200/_river/testdb/_meta”-d“{\”type \“:   \“couchdb \”,\“couchdb \”:{\“host \”:\“localhost \”,\“port \”:   5984,\“db \”:\“testdb \”,\“filter \”:null},\“index \”:{   \“index \”:\“testdb \”,\“type \”:\“testdb \”,\“bulk_size \”:   \“100 \”,\“bulk_timeout \”:\“10ms \”}}“

8)进行测试

  

卷曲“http://127.0.0.1:9200/testdb/testdb/_search?pretty=true

on testing we should get this




{
  "took" : 4,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 4,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "testdb",
      "_type" : "testdb",
      "_id" : "4",
      "_score" : 1.0, "_source" : {"_rev":"1-7e9376fc8bfa6b8c8788b0f408154584","_id":"4","name":"My Name 4"}
    }, {
      "_index" : "testdb",
      "_type" : "testdb",
      "_id" : "1",
      "_score" : 1.0, "_source" : {"_rev":"1-87386bd54c821354a93cf62add449d31","_id":"1","name":"My Name"}
    }, {
      "_index" : "testdb",
      "_type" : "testdb",
      "_id" : "2",
      "_score" : 1.0, "_source" : {"_rev":"1-194582c1e02d84ae36e59f568a459633","_id":"2","name":"My Name 2"}
    }, {
      "_index" : "testdb",
      "_type" : "testdb",
      "_id" : "3",
      "_score" : 1.0, "_source" : {"_rev":"1-62a53c50e7df02ec22973fc802fb9fc0","_id":"3","name":"My Name 3"}
    } ]
  }
}

但是我得到了类似的东西

{
  "error" : "IndexMissingException[[testdb] missing]",
  "status" : 404
}

1 个答案:

答案 0 :(得分:0)

此卷曲字符串不需要额外的testb。这样:

curl "http://127.0.0.1:9200/testdb/testdb/_search?pretty=true"

应该是这样的:

curl 'http://localhost/testdb/_search?pretty=true'

您可以通过运行以下内容查看所有内容,并确保您的搜索针对您的某个索引:

curl -X GET 'localhost:9200/_cat/indices'