我是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,