Поиск CouchDB с использованием ElasticSearch River - PullRequest
2 голосов
/ 15 октября 2011

Я создал реку couchDB (из этого примера эластичного поиска ) для эластичного поиска со следующим кодом:

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"
}
}'

Когда я пытаюсь найти базу данных couchDB с помощьюasticsearch с помощью этой команды:

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

Я получаю ответ: Не найдено обработчиков для uri [/ tasks / tasks] и метода [GET] []

Я искал, но еще не нашел решение этой проблемы.

UPDATE:

Я обнаружил, что правильный запрос:

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" : [ ]
}

Ответы [ 2 ]

1 голос
/ 15 октября 2011

Оба ваших запроса неверны. У первой отсутствует конечная точка /_search, а у второй запрашивается индекс _river вместо индекса tasks.

Индекс _river - это место, где хранится ваша река, а не ваши данные. Когда вы настроили свою реку, вы указали индекс 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'

Клинт

0 голосов
/ 23 апреля 2013

Файл примера , который вы опубликовали, перемещен на github.Эти ребята дают приличное прохождение совместной работы кушетки и эластичного поиска.

К сожалению, принятый в настоящее время ответ не работает для меня.Но если я вставлю что-то подобное в адресную строку моего браузера, это сработает.Обратите внимание, что в URL есть только одна ссылка на индекс «tasks», а не две.

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

Чтобы выполнить настоящий поиск, вы можете попробовать что-то вроде этого:

http://localhost:9200/tasks/_search?q="hello"&pretty=true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...