如何使用“Elasticsearch”gem专门将elasticsearch与rails应用程序集成

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

目前,我也面临着很多麻烦。 任何帮助将受到高度赞赏。

对于用于模型索引的弹性github gem的非常基本的快速启动,您可以在开发环境中执行以下操作,并在localhost上运行elasticsearch: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页面

更好地使用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,