我正在尝试让ElasticSearch正常工作,尤其是与River Plugin一起使用。由于某种原因,我无法正常工作。我包括了尝试使用的过程,发现here:

curl -XDELETE 'http://localhost:9200/_all/'

响应:
{
  "ok": true,
  "acknowledged": true
}

因此,我知道我正在使用一组空的elasticsearch实例。

我有一个名为test的现有数据库,并且river插件已经安装。是否有任何测试来确认River Plugin已安装并正在运行?

我发出以下命令:
curl -XPUT 'http://localhost:9200/_river/my_index/_meta' -d '{
    "type" : "couchdb",
    "couchdb" : {
        "host" : "localhost",
        "port" : 5984,
        "db" : "my_couch_db",
        "filter" : null
    }
}'

my_couch_db是一个真实的数据库,我在Futon中看到了它。里面有文件。

响应:
{
  "ok": true,
  "_index": "_river",
  "_type": "my_index",
  "_id": "_meta",
  "_version": 1
}

现在,在这一点上,我的理解是Elasticseach应该像在教程中看到的那样工作。

我尝试查询,只是找到任何东西。我去
 http://localhost:9200/my_couch_db/my_couch_db.

响应:
No handler found for uri [/my_couch_db/my_couch_db] and method [GET]

我去的时候很奇怪
localhost:5984/my_couch_db/__changes

我懂了
{
  "error": "not_found",
  "reason": "missing"
}

有人知道我要搞砸这部分吗?

最佳答案



尝试在curl -XGET的末尾添加/_search(带有可选的?pretty=true),如下所示:

C:\>curl -XGET "http://localhost:9200/my_couch_db/my_couch_db/_search?pretty=true"
{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 10,
    "successful": 10,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 1.0,
    "hits": [
      {
        "_index": "my_couch_db",
        "_type": "my_couch_db",
        "_id": "a2b52647416f2fc27684dacf52001b7b",
        "_score": 1.0,
        "_source": {
          "_rev": "1-5e4efe372810958ed636d2385bf8a36d",
          "_id": "a2b52647416f2fc27684dacf52001b7b",
          "test": "hello"
        }
      }
    ]
  }
}



尝试从__changes中删除下划线之一,它应该像这样工作:
C:\>curl -XGET "http://localhost:5984/my_couch_db/_changes"
{
  "results": [
    {
      "seq": 1,
      "id": "a2b52647416f2fc27684dacf52001b7b",
      "changes": [
        {
          "rev": "1-5e4efe372810958ed636d2385bf8a36d"
        }
      ]
    }
  ],
  "last_seq": 1
}

08-28 02:54