使用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进行连接。因此,初始化器的编写如下所示。对于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的使用说明中找到步骤来确认连接。

广告
将在 10 秒后关闭
bannerAds