我正在尝试让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
}