当前位置: 首页 > 面试题库 >

ElasticSearch如何与Mysql集成

刘骏祥
2023-03-14
问题内容

在我的一个项目中,我计划将ElasticSearch与mysql一起使用。我已经成功安装了ElasticSearch。我能够单独管理ES中的索引。但我不知道如何用mysql实现相同的功能。

我已经阅读了几份文件,但我有点困惑,不清楚。谁能帮帮我吗?

提前致谢。


问题答案:

终于我找到了答案。分享我的发现。

要将ElasticSearch与Mysql一起使用,您将需要Java数据库连接( 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

并更改集群名称和节点名称

例如 :

# ---------------------------------- 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”的表,
其中包含字段ID,名称和电子邮件

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"

现在检查是否在ES中导入了mysql数据

curl -XGET http://localhost:9200/users/_search/?pretty

如果一切顺利,您将能够以json格式查看所有mysql数据,如果有任何错误,您将可以在/etc/elasticsearch/logs/jdbc.log文件中查看它们

注意事项:

在旧版本的ES中,使用的插件 Elasticsearch-river-jdbc 在最新版本中已完全弃用,因此请不要使用它。

我希望我可以节省您的时间:)

任何进一步的想法表示赞赏

参考网址:https :
//github.com/jprante/elasticsearch-
jdbc



 类似资料:
  • 我正在尝试使用最新版本的弹性搜索库,它已经在maven repos中提供。 但我不确定如何使用第7版的Spring Boot,它进口6.5版本。我对maven的依赖:

  • 我正在从事一个使用Apache Camel和Elasticsearch的项目,我想知道Camel支持哪个版本的Elasticsearch? 我的pom.xml是这样的: 但是当我想将文件路由到elasticsearch时,我遇到了以下错误: Java语言lang.IllegalStateException:收到来自不受支持版本的消息:[2.0.0]最小兼容版本为:[5.0.0] 我发现这个异常是由

  • 问题内容: 我是Rails和elasticsearch的新手。我看过其他资源,可以使用Tire,Searchkick和其他一些资源进行配置,但是我想使用gem。我的系统上已经运行了Rails应用程序并且正在运行Elasticsearch服务器,但是我没有如何配置它们相互通信。 目前,我面临着同样的麻烦。任何帮助将不胜感激。 问题答案: 对于Elastic的github gem进行模型索引的非常基本

  • 问题内容: 我正在尝试将Flink与Elasticsearch 2.1.1集成,我正在使用Maven依赖项 这是我从Kafka队列中读取事件的Java代码(工作正常),但是无论如何,如果我更改了任何相关设置,则事件不会在Elasticsearch中发布,也没有错误,在以下代码中到ElasticSearch的端口,主机名,集群名称或索引名称,然后立即看到错误,但当前它不显示任何错误,也没有在Elas

  • 问题内容: 我已经安装了Elasticsearch以及Neo4j。我想使用“用于ElasticSearch的Neo4j River插件”插件将Elasticsearch与Neo4j集成。谁能告诉我如何整合这两者。我也在寻找一些用例示例,其中我将清楚地了解noe4j如何与elasticsearch一起工作。 问题答案: 我们应该已经安装了Elasticsearch&Neo4j。要与Neo4j Riv

  • 问题内容: 我想要一个集中式日志服务器。 我已经基于此iso创建了两个Ubuntu 12.04 LTS服务器。 在成功并严格按照本教程步骤进行操作之后,我有: 一台Logstash + ElasticSearch + Kibana的日志服务器。 一个带有Logstash-Forwarder的应用程序服务器,Tomcat 6和另一个应用程序,这些日志已在catalina.out文件中注册。 我的问题