澄清弹性搜索的有用性

时间:2016-12-05 20:06:43

标签: ruby-on-rails elasticsearch couchdb

我对使用ElasticSearch感到有点困惑。我现在有一个应用程序(Ruby on Rails)和一个关系数据库(Mysql),我试图从ElasticSearch提供的搜索功能中受益。我仍然希望像以前一样使用我的关系数据库,但我想仅使用ElasticSearch进行搜索。因此,我可以使用ES作为辅助存储吗?如何告诉我的应用程序始终将数据从Mysql复制到ES?这里有最好的做法吗?

我也听说过couchdb很适合搜索,它是ES的替代品还是提供不同的功能?

2 个答案:

答案 0 :(得分:1)

您可以使用Change Data Capture来捕获MySQL中的更改,并使用Logstash或StreamSets(JDBC Input,Elasticsearch Output)将这些更改直接传输到Elasticsearch。您正在使用哪个MySQL版本和存储引擎?

关于CouchDB - 它不能替代Elasticsearch或任何其他面向搜索的数据存储。

答案 1 :(得分:1)

Elasticsearch可用作辅助数据存储。 我们使用Elasticsearch进行搜索,因为它提高了我们的搜索性能。 (我们有数百万条记录要搜索)

我们采取的方法:

  1. 使用logstash来提取初始数据。 (数据库作为输入,Elasticsearch作为输出)。
  2. 当前应用程序负责更新MySQL中的记录。每当有更新时,相同的更新都会被推送到应用程序读取的队列,并用于将这些更改索引到elasticsearch。
  3. 确保为弹性搜索文档使用可识别的唯一documentId。这将有助于更新记录。