Module: Elasticsearch::Persistence
- Extended by:
- ActiveSupport::Autoload, Client::ClassMethods, QueryCache::CacheMethods
- Defined in:
- lib/elasticsearch/persistence.rb,
lib/rails/instrumentation.rb,
lib/rails/instrumentation/railtie.rb,
lib/elasticsearch/persistence/model.rb,
lib/elasticsearch/persistence/client.rb,
lib/elasticsearch/persistence/scoping.rb,
lib/elasticsearch/persistence/version.rb,
lib/elasticsearch/persistence/querying.rb,
lib/elasticsearch/persistence/relation.rb,
lib/elasticsearch/persistence/model/base.rb,
lib/elasticsearch/persistence/model/find.rb,
lib/elasticsearch/persistence/repository.rb,
lib/elasticsearch/persistence/inheritence.rb,
lib/elasticsearch/persistence/model/rails.rb,
lib/elasticsearch/persistence/model/store.rb,
lib/elasticsearch/persistence/query_cache.rb,
lib/elasticsearch/persistence/model/errors.rb,
lib/elasticsearch/persistence/null_relation.rb,
lib/elasticsearch/persistence/scoping/named.rb,
lib/elasticsearch/persistence/model/callbacks.rb,
lib/elasticsearch/persistence/relation/merger.rb,
lib/elasticsearch/persistence/repository/find.rb,
lib/elasticsearch/persistence/scoping/default.rb,
lib/elasticsearch/persistence/repository/class.rb,
lib/elasticsearch/persistence/repository/store.rb,
lib/elasticsearch/persistence/repository/naming.rb,
lib/elasticsearch/persistence/repository/search.rb,
lib/elasticsearch/persistence/model/hash_wrapper.rb,
lib/elasticsearch/persistence/relation/delegation.rb,
lib/elasticsearch/persistence/repository/serialize.rb,
lib/elasticsearch/persistence/relation/query_builder.rb,
lib/elasticsearch/persistence/relation/query_methods.rb,
lib/elasticsearch/persistence/relation/spawn_methods.rb,
lib/elasticsearch/persistence/relation/finder_methods.rb,
lib/elasticsearch/persistence/model/gateway_delegation.rb,
lib/elasticsearch/persistence/repository/response/results.rb,
lib/elasticsearch/persistence/relation/search_option_methods.rb
Overview
Persistence for Ruby domain objects and models in Elasticsearch
‘Elasticsearch::Persistence` contains modules for storing and retrieving Ruby domain objects and models in Elasticsearch.
Repository
The repository patterns allows to store and retrieve Ruby objects in Elasticsearch.
require 'elasticsearch/persistence'
class Note
def to_hash; {foo: 'bar'}; end
end
repository = Elasticsearch::Persistence::Repository.new
repository.save Note.new
# => {"_index"=>"repository", "_type"=>"note", "_id"=>"mY108X9mSHajxIy2rzH2CA", ...}
Customize your repository by including the main module in a Ruby class
class MyRepository
include Elasticsearch::Persistence::Repository
index 'my_notes'
klass Note
client Elasticsearch::Client.new log: true
end
repository = MyRepository.new
repository.save Note.new
# 2014-04-04 22:15:25 +0200: POST http://localhost:9200/my_notes/note [status:201, request:0.009s, query:n/a]
# 2014-04-04 22:15:25 +0200: > {"foo":"bar"}
# 2014-04-04 22:15:25 +0200: < {"_index":"my_notes","_type":"note","_id":"-d28yXLFSlusnTxb13WIZQ", ...}
Model
The active record pattern allows to use the interface familiar from ActiveRecord models:
require 'elasticsearch/persistence'
class Article
attribute :title, String, mapping: { analyzer: 'snowball' }
end
article = Article.new id: 1, title: 'Test'
article.save
Article.find(1)
article.update_attributes title: 'Update'
article.destroy
Defined Under Namespace
Modules: Client, Delegation, FinderMethods, GatewayDelegation, Inheritence, Instrumentation, Model, NullRelation, QueryCache, QueryMethods, Querying, Repository, Scoping, SearchOptionMethods, SpawnMethods Classes: QueryBuilder, Relation
Constant Summary collapse
- VERSION =
"0.1.9"
Class Method Summary collapse
Methods included from Client::ClassMethods
Methods included from QueryCache::CacheMethods
Class Method Details
.eager_load! ⇒ Object
148 149 150 151 |
# File 'lib/elasticsearch/persistence.rb', line 148 def self.eager_load! super Elasticsearch::Persistence::Scoping.eager_load! end |