Ответ 1
Наконец, я смог найти ответ. разделяя мои результаты.
Чтобы использовать ElasticSearch с Mysql, вам понадобится импортер Java Database Connection (JDBC). с драйверами JDBC вы можете синхронизировать ваши данные mysql в elasticsearch.
Я использую ubuntu 14.04 LTS, и вам потребуется установить Java8 для запуска elasticsearch, поскольку он написан на Java
Ниже приведены шаги по установке ElasticSearch 2.2.0 и ElasticSearch-jdbc 2.2.0 и обратите внимание, что обе версии должны быть одинаковыми
после установки Java8..... установите elasticsearch 2.2.0 следующим образом
# cd /opt
# wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.2.0/elasticsearch-2.2.0.deb
# sudo dpkg -i elasticsearch-2.2.0.deb
Эта процедура установки установит Elasticsearch в каталоге /usr/share/elasticsearch/, файлы конфигурации которого будут помещены в /etc/elasticsearch.
Теперь давайте сделаем базовую конфигурацию в файле конфигурации. здесь /etc/elasticsearch/elasticsearch.yml - наш файл конфигурации вы можете открыть файл для изменения
nano /etc/elasticsearch/elasticsearch.yml
и смените имя кластера и node name
Например:
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: servercluster
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: vps.server.com
#
# Add custom attributes to the node:
#
# node.rack: r1
Теперь сохраните файл и запустите elasticsearch
/etc/init.d/elasticsearch start
для тестирования ES, установленного или не выполняемого после
curl -XGET 'http://localhost:9200/?pretty'
Если вы следуете, то ваш elasticsearch устанавливается теперь:)
{
"name" : "vps.server.com",
"cluster_name" : "servercluster",
"version" : {
"number" : "2.2.0",
"build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe",
"build_timestamp" : "2016-01-27T13:32:39Z",
"build_snapshot" : false,
"lucene_version" : "5.4.1"
},
"tagline" : "You Know, for Search"
}
Теперь установите elasticsearch-JDBC
загрузите его из http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.3.1/elasticsearch-jdbc-2.3.3.1-dist.zip
и извлеките его в/etc/elasticsearch/и создайте также папку "logs" (путь к журналам должен быть /etc/elasticsearch/logs )
У меня есть одна база данных, созданная в mysql с именем " ElasticSearchDatabase" и внутри этой таблицы с именем "test" с именами полей, именем и электронной почтой
cd /etc/elasticsearch
и выполните следующие действия
echo '{
"type":"jdbc",
"jdbc":{
"url":"jdbc:mysql://localhost:3306/ElasticSearchDatabase",
"user":"root",
"password":"",
"sql":"SELECT id as _id, id, name,email FROM test",
"index":"users",
"type":"users",
"autocommit":"true",
"metrics": {
"enabled" : true
},
"elasticsearch" : {
"cluster" : "servercluster",
"host" : "localhost",
"port" : 9300
}
}
}' | java -cp "/etc/elasticsearch/elasticsearch-jdbc-2.2.0.0/lib/*" -"Dlog4j.configurationFile=file:////etc/elasticsearch/elasticsearch-jdbc-2.2.0.0/bin/log4j2.xml" "org.xbib.tools.Runner" "org.xbib.tools.JDBCImporter"
теперь проверьте, импортированы ли данные mysql в ES или нет
curl -XGET http://localhost:9200/users/_search/?pretty
Если все пойдет хорошо, вы сможете увидеть все ваши данные mysql в формате json и если есть какая-либо ошибка, вы сможете увидеть их в файле /etc/elasticsearch/logs/jdbc.log
Предостережение:
В старых версиях ES... был использован плагин Elasticsearch-river-jdbc, который полностью устарел в последней версии, поэтому не используйте его.
Надеюсь, я смогу сэкономить ваше время:)
Любые дальнейшие мысли оценены
Ссылка URL: https://github.com/jprante/elasticsearch-jdbc