ActiveModel / ActiveRecord
编辑ActiveModel / ActiveRecord编辑
elasticsearch-model
Rubygem 提供了与 Ruby 域对象(“模型”)的集成,这些对象通常在 Ruby on Rails 应用程序中找到。
它使用 elasticsearch
Rubygem 作为与 Elasticsearch 集群通信的客户端。
特性编辑
- ActiveModel 与 ActiveRecord 和 Mongoid 的适配器集成
- 基于 Enumerable 的搜索结果包装器
- 基于 ActiveRecord::Relation 的包装器,用于将搜索结果作为记录返回
- 便捷的模型方法,例如
search
、mapping
、import
等 - 支持 Kaminari 和 WillPaginate 分页
- 通过代理对象实现的扩展,以防止模型命名空间发生冲突
- 用于(重新)创建索引、设置映射、索引文档等的便捷方法
用法编辑
将库添加到您的 Gemfile 中
gem 'elasticsearch-rails'
在您的模型类中包含扩展模块
class Article < ActiveRecord::Base include Elasticsearch::Model end
导入一些数据并执行搜索
Article.import response = Article.search 'fox dog' response.took # => 3
可以使用 records
和 results
方法分别将结果作为模型实例或 Elasticsearch 中的装饰文档返回
response.records.first # Article Load (0.4ms) SELECT "articles".* FROM "articles" WHERE ... => #<Article id: 3, title: "Foo " ...> response.results.first._score # => 0.02250402 response.results.first._source.title # => "Quick brown fox"
有关更多信息,请参阅文档。