ActiveModel / ActiveRecord
编辑ActiveModel / ActiveRecord
编辑elasticsearch-model
Rubygem 提供了与 Ruby 域对象(“模型”)的集成,这些对象通常在例如 Ruby on Rails 应用程序中找到。
它使用 elasticsearch
Rubygem 作为与 Elasticsearch 集群通信的客户端。
功能
编辑- ActiveModel 集成,带有 ActiveRecord 和 Mongoid 的适配器
- 基于可枚举的搜索结果包装器
- 基于 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"
有关更多信息,请参阅文档。