我最近开始寻找 ElasticSearch 在我的应用程序中实现搜索。我在Mysql中有我的数据库,大约有。> 2 百万条记录。我知道在 sphinx 中,我们可以直接在任何 mysql 表列上创建索引。我想知道它在 Elasticsearch 中是否可行,如果不是直接我们如何实现它?
谢谢莫希特
我最近开始寻找 ElasticSearch 在我的应用程序中实现搜索。我在Mysql中有我的数据库,大约有。> 2 百万条记录。我知道在 sphinx 中,我们可以直接在任何 mysql 表列上创建索引。我想知道它在 Elasticsearch 中是否可行,如果不是直接我们如何实现它?
谢谢莫希特
与 Sphinx 一样,Elastic Search 中没有对 mysql 的本机支持(目前)。
Elastic Search 是一个很好的搜索选择,但您可能需要做一些自定义工作,以便在数据库中的项目发生更改时触发对它们的重新索引。具体如何实现将在很大程度上取决于您的应用程序。Elastic Search 具有出色的近乎实时的搜索功能,并且已被证明在繁重的索引负载下表现良好,因此触发重新索引对于大多数应用程序来说不应该是一个问题。
https://github.com/jprante/elasticsearch-river-jdbc就是这样做的。您可以使用“操作表”从 mysql 源同步数据。
第一次安装有点麻烦,但是可以。
首先您必须安装插件其次您必须设置(配置)导入的数据
Step-1 : 下载最新版本的弹性搜索
Step-2:下载logstasch后需要安装jdbc插件
bin/plugin 安装 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 输入参数说明
jdbc_driver_library jdbc 库的完整路径 jdbc_driver_class 要加载的 JDBC 驱动类,对于 MySQL 是 com.mysql.jdbc.Driver jdbc_connection_string JDBC mysql 连接字符串 jdbc_user MySQL 用户 jdbc_password MySQL 用户密码 schedule 每分钟运行一次输入语句。可用的调度选项语句 MySQL 语句参数 MySQL 语句中要传递的参数
Jdbc 输出参数说明
参数 说明
index Elasticsearch 索引名称 document_type Elasticsearch 索引类型。弹性搜索文档的 document_id id
Step-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中快速测试您的数据
谢谢你,德布斯
在这种情况下,您有两种选择:-