3

我正在研究数据的图形表示。该图接受 JSON 数据,因此我需要从 couchdb 获取所需的数据。我正在使用弹性搜索服务器来索引 couchdb,从而检索所需的数据。我正在使用elasticsearch River 插件来制作couchdb 和elasticsearch 服务器。

我已经创建了 CouchDB 数据库“testdb”并为此创建了一些测试文档。使用数据库设置弹性搜索。在通过使用默认搜索条件编写 CURl GET 命令进行测试时,我们必须得到大于 0 的“总命中”,并且“命中”必须具有搜索条件的一些响应值。但是我们得到 'total hits' 为 0 和 'hits':[] (即 null)

我遵循的程序。

1)下载安装couchdb最新版本

2) 已验证 CouchDB 正在运行

卷曲本地主机:5984

I got response that starts with:

{"couchdb":"Welcome"...

3) 下载 ElasticSearch 并安装服务

服务.bat 安装

卷曲http://127.0.0.1:9200

I got response as


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

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

插件-安装 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\"}"
curl -X PUT " http://127.0.0.1:5984/testdb/3 " -d "{\ "name\":\"我的名字 3\"}"
curl -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
}
4

1 回答 1

0

这个 curl 字符串不需要额外的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'

于 2015-03-19T23:51:29.290 回答