Как создать индекс с помощью ElasticSearch, River и MongoDB?

Я использовал это руководство для установки и настройки MongoDB/Elasticsearch.

Весь учебник работал на Mac OSX Yosemite, и теперь я попытался сделать то же самое на Ubuntu 14.04.

Вот мой журнал ElasticSearch:

[2014-12-08 15:49:13,733][INFO ][cluster.service          ] [Western Kid] new_master [Western Kid][fo8GLpDoRyKYBAkjk7f-jw][my_hostname][inet[localhost/127.0.0.1:9300]], reason: zen-disco-join (elected_as_master)
[2014-12-08 15:49:13,758][INFO ][http                     ] [Western Kid] bound_address {inet[/127.0.0.1:9200]}, publish_address {inet[localhost/127.0.0.1:9200]}
[2014-12-08 15:49:13,758][INFO ][node                     ] [Western Kid] started
[2014-12-08 15:49:14,449][INFO ][gateway                  ] [Western Kid] recovered [1] indices into cluster_state
[2014-12-08 15:49:15,225][INFO ][org.elasticsearch.river.mongodb.MongoDBRiver] Starting river mongodb
[2014-12-08 15:49:15,230][INFO ][org.elasticsearch.river.mongodb.MongoDBRiver] MongoDB River Plugin - version[2.0.4] - hash[7472875] - time[2014-11-11T13:26:19Z]
[2014-12-08 15:49:15,231][INFO ][org.elasticsearch.river.mongodb.MongoDBRiver] starting mongodb stream. options: secondaryreadpreference [false], drop_collection [false], include_collection [], throttlesize [5000], gridfs [false], filter [null], db [my_db_name], collection [my_collection], script [null], indexing to [my_index]/[my_type]
[2014-12-08 15:49:15,231][INFO ][river.mongodb.util       ] setRiverStatus called with mongodb - RUNNING
[2014-12-08 15:57:56,543][INFO ][cluster.metadata         ] [Western Kid] [_river] update_mapping [my_db_name] (dynamic)

Когда я попытался начать индексацию своей коллекции, я получил следующее сообщение:

{
  "_index": "_river",
  "_type": "my_type",
  "_id": "_meta",
  "_version": 4,
  "created": false
}

Версия увеличивается каждый раз, когда я пытаюсь начать с 1.

Я предполагаю, что created:false означает, что индекс не может быть создан по какой-то причине, но я понятия не имею, почему.


person mr.proton    schedule 08.12.2014    source источник


Ответы (1)


Версия реки увеличивается, потому что вы фактически обновляете индекс _river, поэтому Elasticsearch не создает его, поскольку он уже существует.

Возможно, вы захотите установить плагин elasticsearch-head, чтобы лучше визуализировать свой кластер, поскольку вы, похоже, не очень хорошо знакомы с API.

Попробуйте удалить _river и создать его снова, и вы увидите, что на этот раз он действительно будет иметь статус created.

person eliasah    schedule 08.12.2014
comment
Тогда почему невозможно запросить индекс? curl -XGET 'localhost:9200/fwindex/_search?q=searchFor:Value' {ошибка: IndexMissingException [[my_index] отсутствует], статус: 404} - person mr.proton; 08.12.2014
comment
Индекс _river и индекс, по которому вы пытаетесь выполнить поиск, — это две разные вещи. Обычно вам нужно создать свой индекс, в который река будет записывать данные! эта команда curl пытается найти данные в «fwindex», и если вы ее не создали, вы не сможете запросить ее или написать на ней! - person eliasah; 09.12.2014
comment
Если вы прочитаете связанный учебник, вы увидите, что парень делает то же самое. Он создает индекс с помощью curl -XPUT 'localhost:9200/_river/mongodb/_meta' -d ... а затем запросить индекс через curl -XGET 'localhost:9200/mongoindex /_search?q=firstName:John'. Как я уже сказал, я следил за учебным пособием по Mac OS X, и оно работает нормально. Я понятия не имею, что не так с моей системой Ubuntu. - person mr.proton; 09.12.2014
comment
Вместо того, чтобы рассказывать, что написано в учебнике, вы хотя бы пробовали что-нибудь из того, что я вам сказал? - person eliasah; 09.12.2014
comment
Да, я удалил _river и создал его заново: {_index:_river,_type:my_database,_id:_meta,_version:1,created:true}. В журнале указано: [2014-12-09 09:24:49,089][ИНФОРМАЦИЯ][cluster.metadata][Имир] [_river] update_mapping [my_database] (динамический). Но я все еще не могу запросить индекс через curl -XGET localhost:9200/my_index/_search/. Затем он говорит {ошибка: IndexMissingException [[my_index] отсутствует], статус: 404} - person mr.proton; 09.12.2014
comment
и вы создали индекс перед тем, как снова запустить реку? шаг 1. создайте индекс, по которому вы хотите запустить реку. шаг 2. добавить реку шаг 3. проверить журналы, чтобы увидеть, как он индексируется. - person eliasah; 09.12.2014