Индексирование базы данных Mysql с помощью эластичного поиска - PullRequest
10 голосов
/ 23 декабря 2011

Я недавно начал искать ElasticSearch для реализации поиска в моем приложении.У меня есть моя база данных в Mysql, которая имеет ок.> 2 млн записей.Я знаю, что в sphinx мы можем создать индекс непосредственно для любого столбца таблицы MySQL.Я хотел знать, возможно ли это в Elasticsearch, если не напрямую, как мы могли бы это реализовать?

Спасибо, Мохит

Ответы [ 3 ]

4 голосов
/ 18 апреля 2013

https://github.com/jprante/elasticsearch-river-jdbc делает это.Вы можете синхронизировать данные из источника MySQL, используя «таблицу операций».

Это немного сложно при первой установке, но это работает.

Сначала вы должны установить плагин Во-вторых,необходимо настроить (настроить) импортированные данные

4 голосов
/ 23 декабря 2011

Нет встроенной поддержки (в настоящее время) для mysql в Elastic Search, как в Sphinx.

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

Движение NoSQL , похоже, тоже набирает обороты. Некоторые приложения используют Elastic Search в качестве единственного хранилища данных.

0 голосов
/ 22 мая 2016
  • Что такое Logstash? Logstash - это механизм сбора данных в режиме реального времени трубопроводные возможности. Вы можете использовать Logstash для сбора ваших журналов, разобрать их в нужный формат и сохранить их для поиска или мониторинг вашего приложения.

Шаг-1 : Загрузить последнюю версию упругий поиск

Шаг 2: После загрузки logstasch необходимо установить плагин jdbc

bin / plugin install logstash-input-jdbc

Шаг-3: Скачать драйвер mysql-jdbc ... как я скачал и файл зовут mysql-connector-java-5.1.36.jar. положить этот файл внутри logstash / drivers / mysql-connector-java-5.1.36.jar .... вы можете поставить его где угодно. но помни путь.

Шаг 4: Теперь создайте файл db.conf и поместите его в logstash. каталог ... в моем случае logstash-2.3.2 / logstash-jdbc.conf здесь это Содержание:

ввод jdbc: mysql: // localhost / myapp_development "jdbc_user =>" root "jdbc_password =>" admin "parameters => {" user_list "=>" users "} schedule =>" * * * * * "Statement =>" select имя, электронная почта от пользователей "}} output {asticsearch {index =>" users "document_type =>" users "document_id =>"% {123} "hosts =>" localhost: 9200 "}}

Описание входных параметров Jdbc

jdbc_driver_library Полный путь к библиотеке jdbc jdbc_driver_class JDBC класс драйвера для загрузки, для MySQL это com.mysql.jdbc.Driver jdbc_connection_string JDBC строка подключения mysql jdbc_user MySQL user jdbc_password MySQL user password schedule Запустить оператор ввода каждую минуту. Доступная опция планирования оператора MySQL Statement параметры Параметр для передачи в операторе MySQL

Параметры вывода Jdbc Описание

Описание параметров
index Elasticsearch Индекс имя document_type Elasticsearch Тип индекса. document_id Идентификатор упругого поиска doc


Шаг 5: Настройка завершена. нам нужно запустить logstart. перед этим начать elasicsearch

затем запустите logstsh и передайте ему файл jadbc-db.conf для конфигурации $ cd logstash-2.3.2 $ bin / logstash agent -f logstash-jdbc.conf

Теперь быстро проверь свои данные в упругом поиске http://localhost:9200/users/users/_search

Спасибо, Дебс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...