2016-12-05 90 views
0

我對使用ElasticSearch有點困惑。我現在有一個關係數據庫(Mysql)的應用程序(Ruby on Rails),我試圖從ElasticSearch提供的搜索功能中受益。我仍然想像以前一樣使用我的關係數據庫,但我只想使用ElasticSearch進行搜索。因此,我可以使用ES作爲輔助存儲嗎?如何告訴我的應用程序總是將數據從Mysql複製到ES?這裏有最佳做法嗎?澄清彈性搜索的用處

我也聽說couchdb很適合搜索,它是ES的替代品還是提供不同的功能?

回答

1

您可以使用更改數據捕獲來捕獲MySQL中的更改,並使用Logstash或StreamSets(JDBC輸入,Elasticsearch輸出)將這些更改正確地傳輸到Elasticsearch。您準確使用了MySQL的哪個版本和存儲引擎?

關於CouchDB--它不是Elasticsearch或任何其他面向搜索的數據存儲的替代品。

+0

回答不應該包含問題本身,澄清問題,以幫助您更好地理解OP的問題應該是對OP的帖子的意見(我知道你還沒有代表這樣做,所以它在這裏罰款) –

1

Elasticsearch可以用作輔助數據存儲。 我們使用Elasticsearch進行搜索,因爲它提高了我們的搜索性能。 (我們擁有數百萬條記錄進行搜索)

我們採取的方法:

  1. 使用logstash攝取的初始數據。 (數據庫作爲輸入,Elasticsearch作爲輸出)。
  2. 當前應用程序負責更新MySQL中的記錄。只要有更新,相同的更新被推送到應用程序讀取的隊列中,並用於將這些更改索引到elasticsearch。

確保您爲elasticsearch文檔使用可識別的唯一documentId。這將有助於更新記錄。