Настройка реки MongoDB для Elasticsearch - PullRequest
11 голосов
/ 04 февраля 2012

Хорошо, поэтому я искал повсюду в Интернете какую-то документацию о том, как настроить MongoDB и Elasticsearch. Похоже, что в главном репозитории эластичного поиска github есть плагин для реки Монгодб, но нет документации. Кто-нибудь получил эти две прекрасные технологии для совместной работы?

Ответы [ 2 ]

17 голосов
/ 18 января 2013

Это довольно старый вопрос, но я просто опубликую свой ответ на тот случай, если другие задаются вопросом о том же вопросе, особенно с выходом новых версий ES. Мне потребовалось некоторое время, чтобы моя ES тоже работала с MongoDB.

  1. Во-первых, я предполагаю, что у вас установлены ES и MongoDB. Убедитесь, что у вас включены оплоги, если вы не используете наборы реплик. См. здесь о том, как это сделать.

  2. У речного плагина есть зависимость (asticsearch-mapper-attachments), поэтому УБЕДИТЕСЬ, что сначала вы установите его, чтобы впоследствии не было проблем. Эта wiki содержит необходимые команды, необходимые для установки плагинов. Обратите внимание на альтернативную ссылку для загрузки речного плагина, если вы используете ES 0.20.2 и выше.

  3. Перезагрузите ES.

  4. Используйте следующую команду для включения индексации:

    curl -XPUT 'http://localhost:9200/_river/mongodb/_meta' -d '
    {
        "type": "mongodb",
        "mongodb": {
            "db": "your-database-name",
            "collection": "your-collection-name"
        },
        "index": {
            "name": "mongoindex",
            "type": "your-type"
        }
    }'
    
  5. Для поиска используйте curl -XGET 'http://localhost:9200/mongoindex/_search?q=field:value'

Я получил большую часть информации от с этого сайта , но я чувствовал, что ее можно упростить гораздо больше, отсюда и мой собственный подход.

0 голосов
/ 26 сентября 2014

Работает в определенных конфигурациях.Для работы всей системы могут быть необходимы версии подключаемых модулей и речного плагина эластичного поиска.

Вот шаги по воспроизведению рабочей среды

1) используйте версию эластичного поиска 1.2.4.Пакет для Ubuntu находится здесь: https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.4.deb

установите его с dpkg -i /path/to/elasticsearch-1.2.4.deb

2) установите плагин river и его зависимости:

cd /usr/share/elasticsearch && bin/plugin --install elasticsearch/elasticsearch-mapper-attachments/1.9.0
cd /usr/share/elasticsearch && bin/plugin --install com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/2.0.1

Более новые версииДоступен плагин mapper atachments, но официальная вики плагина Mongo River предлагает использовать 1.9.0.

3) MongoDB v2.4.9 наверняка работает с плагином эластичного поиска реки.убедитесь, что mongod запущен с --replSet rs0 или у вас replSet=rs0 в mongod.conf Далее, вы должны быть уверены, что набор реплик инициирован в mongodb: вход в консоль mongo:

mongo

Затем введите:

rs.initiate()
rs.status()

4) Подготовительные работы завершены, теперь вам нужно запустить плагин эластичного поиска по реке.Предполагая, что у вас работаетasticsearch на локальном хосте: 9200, а mongodb на 10.0.2.15:27017

curl -XPUT "localhost:9200/_river/feed/_meta" -d"
        {
          \"type\": \"mongodb\",
            \"mongodb\": {
              \"servers\": [
                {\"host\": \"10.0.2.15", \"port\": 27017}
              ],
              \"db\": \"YOUR_DB\",
              \"collection\": \"YOUR_COLLECTION\"
            },
            \"index\": {
              \"name\": \"YOUR_ELASTIC_INDEX\",
              \"type\": \"item\"
            }
        }"

5) проверьте rs.config () на сервере mongo.Он должен содержать разрешимые имена хостов или ips для членов набора реплик, с которыми может связаться плагин mongodb river.Плагин Elasticsearch river подключится к хосту, указанному в mongodb.servers, и получит конфигурацию реплики.Затем он попытается подключиться к основному хосту реплики, заданному именем хоста, указанным в rs.config ().Если вы собираетесь использовать Docker-контейнеры для соединения monogdb иasticsearch через плагин river, тогда это проблема.

Вы можете обновить конфигурацию rs, выполнив следующие действия:

mongo

и затем в Монгооболочка

cfg = rs.config()
cfg.members[0].host = "12.34.56.78:27017"
rs.reconfig(cfg)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...