Индексирование базы данных Mysql с помощью поиска elastics
Недавно я начал искать ElasticSearch для реализации поиска в моем
выражение. У меня есть моя база данных в Mysql, которая имеет ок. > 2 млн.
записей. Я знаю, что в sphinx мы могли бы создать индекс непосредственно на любом
столбец таблицы mysql. Я хотел знать, возможно ли это в Elasticsearch,
если не напрямую, как мы можем это реализовать?
Спасибо
Мохит
Ответы
Ответ 1
В настоящее время нет встроенной поддержки для mysql в Elastic Search, как в Sphinx.
Эластичный поиск - отличный вариант для поиска, но вам, вероятно, придется выполнить какую-то специальную работу, чтобы вызвать переиндексацию элементов при их изменении в вашей базе данных. Точно, как это будет достигнуто, это будет зависеть от вашего приложения. У Elastic Search есть отличная возможность поиска в режиме реального времени, и было доказано, что работает хорошо под нагрузкой с высоким индексированием, поэтому запуск переиндексации не должен беспокоить большинство приложения.
Движение NoSQL, похоже, набирает обороты. Некоторые приложения используют Elastic Search в качестве единственного хранилища данных.
Ответ 2
https://github.com/jprante/elasticsearch-river-jdbc делает это. Вы можете синхронизировать данные из источника mysql, используя "таблицу операций".
Это, сначала немного сложнее, но он работает.
Сначала вы должны установить плагин
Во-вторых, вам нужно настроить (настроить) импортированные данные
Ответ 3
- Что такое Logstash? Logstash - это механизм сбора данных в режиме реального времени
возможности конвейерной обработки. Вы можете использовать Logstash для сбора журналов,
проанализируйте их в желаемом формате и сохраните их для поиска или
мониторинг для вашего приложения.
Шаг-1. Загрузите последнюю версию эластичный поиск
Шаг-2: После загрузки logstasch необходимо установить плагин jdbc
bin/plugin install logstash-input-jdbc
Шаг 3: Загрузите драйвер mysql-jdbc... как я скачал, и файл name - 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 здесь Содержание:
input {jdbc {jdbc_driver_library = > "/opt/logstash-2.3.2/drivers/mysql-connector-java-5.1.36.jar" jdbc_driver_class= > "com.mysql.jdbc.Driver" jdbc_connection_string = > "jdbc: mysql://localhost/myapp_development" jdbc_user = > "root" jdbc_password = > "admin" parameters = > { "user_list" = > "users" } schedule = > "* * * * *" statement = > "select имя пользователя, адрес электронной почты от пользователей" }} output {elasticsearch {index = > "users" document_type = > "users" document_id = > "% {123}" hosts = > "localhost: 9200" }}
Jdbc Input Параметр Описание
jdbc_driver_library Полный путь библиотеки jdbc jdbc_driver_class JDBC класс драйвера для загрузки, для MySQL это com.mysql.jdbc.Driver jdbc_connection_string JDBC строка подключения mysql jdbc_user MySQL Пользовательский пароль пользователя jdbc_password каждую минуту. Доступная инструкция о параметрах планирования. Оператор MySQL. Параметры Параметр для передачи в инструкции MySQL
Параметры вывода Jdbc Описание
Параметр Описание
индекс Elasticsearch Название индекса document_type Тип индекса Elasticsearch. document_id Идентификатор документа поиска эластичности
Шаг-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
Спасибо Debs