2

次のコードでelasticsearch用のcouchDBリバー(このelasticsearch exampleから)を作成しまし:

curl -XPUT 'localhost:9200/_river/tasks/_meta' -d '{
"type" : "couchdb",
"couchdb" : {
    "host" : "localhost",
    "port" : 5984,
    "db" : "tasks",
    "filter" : null
},
"index" : {
    "index" : "tasks",
    "type" : "tasks",
    "bulk_size" : "100",
    "bulk_timeout" : "10ms"
}
}'

このコマンドでelasticsearchを使用してcouchDBを検索しようとすると:

curl -XGET http://localhost:9200/tasks/tasks -d query{"user":"jbattle"}

応答を受け取ります: uri [/tasks/tasks] およびメソッド [GET][] のハンドラーが見つかりません

私は検索してきましたが、この問題の解決策をまだ発見していません。

アップデート:

適切なクエリは次のとおりです。

curl -XGET 'http://localhost:9200/_river/tasks/_search?q=user:jbattle&pretty=true'

ただし、エラーを受信しなくなったにもかかわらず、ヒット数は 0 です。

{
   "took" : 1,
   "timed_out" : false,
   "_shards" : {
     "total" : 1,
     "successful" : 1,
     "failed" : 0
   },
   "hits" : {
   "total" : 0,
   "max_score" : null,
   "hits" : [ ]
}
4

2 に答える 2

1

あなたの質問は両方とも間違っています。最初のものはエンドポイントがなく、2番目のものは indexの代わりに index を/_searchクエリしています。_rivertasks

インデックスは、_riverデータではなく、川が保存される場所です。リバーを構成したときに、 index を指定しtasksました。

代わりにこれを試してください:

curl -XGET 'http://localhost:9200/tasks/tasks/_search?q=user:jbattle&pretty=true'

または、それがうまくいかない場合は、次のドキュメントを検索してみてくださいtasks/tasks

curl -XGET 'http://localhost:9200/tasks/tasks/_search?q=*&pretty=true'

クリント

于 2011-10-15T10:18:17.747 に答える
0

投稿したサンプル ファイルは github に移動しました。これらの人は、 couch と Elasticsearch を連携させるためのまともなウォークスルーを提供します。

残念ながら、現在受け入れられている答えは私にはうまくいきません。しかし、ブラウザのアドレスバーにこのようなものを貼り付けると機能します。URL 内の「タスク」インデックスへの参照は 2 つではなく、1 つだけであることに注意してください。

http://localhost:9200/tasks/_search?pretty=true

実際の検索を行うには、次のようなことを試すことができます。

http://localhost:9200/tasks/_search?q="hello"&pretty=true
于 2013-04-23T19:30:50.087 に答える