如何将 elasticsearch 与 rails 应用程序集成,特别是使用 "Elasticsearch" gem

How to integrate elasticsearch with rails application specifically using "Elasticsearch" gem

我是 rails 和弹性搜索的新手。我已经看到使用 Tire、Searchkick 和其他一些资源进行配置的其他资源,但我想使用 Elasticsearch gem。我的系统上有 运行 rails 应用程序和 运行 Elasticsearch 服务器,但我不知道如何配置它们以相互通信。

目前,我也遇到了很多麻烦。任何帮助将不胜感激。

更好用elasticsearch-rails

在 Gemfile 中:

gem install elasticsearch-rails

要从您的文章模型导入记录,运行:

$ bundle exec rake environment elasticsearch:import:model CLASS='Article'

要将导入的记录限制在某个ActiveRecord范围内,将其传递给任务:

$ bundle exec rake environment elasticsearch:import:model CLASS='Article' SCOPE='published'

运行这条命令显示使用说明:

$ bundle exec rake -D elasticsearch

如果要用于模型

elasticsearch-model,其中包含 Ruby/Rails 模型的搜索集成,例如 ActiveRecord::Base 和 Mongoid,

对于用于模型索引的弹性 github gem 的非常基本的快速启动,您可以在开发环境中使用弹性搜索 运行ning 在 localhost:9200

在 Gemfile 中:

gem 'elasticsearch-model'

然后 运行 在终端上:

$ bundle install

in app/models/service.rb 包含在 class 声明之后:

include Elasticsearch::Model

您现在可以使用现有数据在控制台上使用它(结果只是示例):

$ rails console

# Create the index for Service model on elasticsearch
> Service.__elasticsearch__.create_index!
=> {"acknowledged"=>true}

# Import current Service records into the index
> Service.import
  Service Load (207.3ms)  SELECT  "services".* FROM "services"  ORDER BY "services"."id" ASC LIMIT 1000

# Sample search returning total results
> Service.__elasticsearch__.search("mykeyword").results.total
=> 123

有关更多信息和详细信息,您可以查看项目的 github page