Ruby on Rails から Open Distro for Elasticsearch に接続する
この記事について
Ruby on Rails から Docker 上の Open Distro for Elasticsearch に接続する方法を記載します。
Open Distro for Elasticsearch とは
Open Distro for Elasticsearch は Elasticsearch のディストリビューションで、 Amazon Elasticsearch Service で使われているものです。
Docker
公式のドキュメントを参考に docker-compose で Open Distro for Elasticsearch を立ち上げます。
今回はシングルノードで立ち上げています。
version: "3"
services:
elasticsearch_open_distro:
image: amazon/opendistro-for-elasticsearch:1.9.0
environment:
- discovery.type=single-node
- cluster.name=elasticsearch
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
Ruby on Rails から接続
elasticsearch-rails と elasticsearch-model を使います。
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
素の Elasticsearch と違い Open Distro for Elasticsearch は localhost の場合も https で接続しなければなりません。
よって initializer は以下のように書きます。
localhost の場合は transport_options
で ssl の verify を false にしています。
ELASTICSEARCH_USER
と ELASTICSEARCH_PASSWORD
はデフォルトでは両方 admin を使うと接続することはできます。
Elasticsearch::Model.client = Elasticsearch::Client.new(
host: 'localhost',
port: 9200,
user: ENV['ELASTICSEARCH_USER'],
password: ENV['ELASTICSEARCH_PASSWORD'],
scheme: 'https',
transport_options: {
ssl: {
verify: false,
},
},
)
これで接続することができました。
elasticsearch-rails の Usage の手順で接続を確認することができます。
Author And Source
この問題について(Ruby on Rails から Open Distro for Elasticsearch に接続する), 我々は、より多くの情報をここで見つけました https://qiita.com/calorie/items/c7b398ed33ceace552bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .