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



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

目前,我也面临着很多麻烦。如有任何帮助,我们将不胜感激。

为了快速启动用于模型索引的弹性github gem,您可以在本地主机上运行弹性搜索的开发环境中执行以下操作:9200

在Gemfile:中

gem 'elasticsearch-model'

然后在终端上运行:

$ bundle install

在app/models/service.rb中,类声明后立即包含:

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页面

更好地使用弹性搜索轨道

在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模型,它包含对Ruby/Rails模型的搜索集成,如ActiveRecord::Base和Mongoid,

最新更新