如何使用“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,