Class: Elasticated::Document
- Inherits:
-
Object
- Object
- Elasticated::Document
- Includes:
- Mixins::BlockEvaluation, Mixins::Inspectionable
- Defined in:
- lib/elasticated/document.rb
Instance Attribute Summary collapse
-
#document_source ⇒ Object
Returns the value of attribute document_source.
-
#id ⇒ Object
Returns the value of attribute id.
-
#index ⇒ Object
Returns the value of attribute index.
-
#score ⇒ Object
Returns the value of attribute score.
-
#type ⇒ Object
Returns the value of attribute type.
-
#version ⇒ Object
Returns the value of attribute version.
Class Method Summary collapse
- .create(opts = {}, &block) ⇒ Object
- .parse(hit) ⇒ Object (also: from_elasticsearch_hit)
Instance Method Summary collapse
-
#initialize(source = nil) ⇒ Document
constructor
A new instance of Document.
- #source ⇒ Object
- #source=(hash) ⇒ Object
- #text_for_inspect ⇒ Object
- #to_h ⇒ Object
Methods included from Mixins::BlockEvaluation
Methods included from Mixins::Inspectionable
Constructor Details
#initialize(source = nil) ⇒ Document
Returns a new instance of Document.
35 36 37 |
# File 'lib/elasticated/document.rb', line 35 def initialize(source=nil) self.source = source if source end |
Instance Attribute Details
#document_source ⇒ Object
Returns the value of attribute document_source.
33 34 35 |
# File 'lib/elasticated/document.rb', line 33 def document_source @document_source end |
#id ⇒ Object
Returns the value of attribute id.
33 34 35 |
# File 'lib/elasticated/document.rb', line 33 def id @id end |
#index ⇒ Object
Returns the value of attribute index.
33 34 35 |
# File 'lib/elasticated/document.rb', line 33 def index @index end |
#score ⇒ Object
Returns the value of attribute score.
33 34 35 |
# File 'lib/elasticated/document.rb', line 33 def score @score end |
#type ⇒ Object
Returns the value of attribute type.
33 34 35 |
# File 'lib/elasticated/document.rb', line 33 def type @type end |
#version ⇒ Object
Returns the value of attribute version.
33 34 35 |
# File 'lib/elasticated/document.rb', line 33 def version @version end |
Class Method Details
.create(opts = {}, &block) ⇒ Object
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/elasticated/document.rb', line 6 def create(opts={}, &block) raise if block && !opts.empty? ret = new if opts.empty? ret.evaluate block else opts.each{ |k, v| ret.send "#{k}=", v if v } end ret end |
.parse(hit) ⇒ Object Also known as: from_elasticsearch_hit
17 18 19 20 21 22 23 24 25 |
# File 'lib/elasticated/document.rb', line 17 def parse(hit) document = new hit['_source'] document.id = hit['_id'] document.type = hit['_type'] document.index = hit['_index'] document.score = hit['_score'] document.version = hit['_version'] document end |
Instance Method Details
#source ⇒ Object
43 44 45 |
# File 'lib/elasticated/document.rb', line 43 def source self.document_source ||= Hash::Accessible.new end |
#source=(hash) ⇒ Object
39 40 41 |
# File 'lib/elasticated/document.rb', line 39 def source=(hash) self.document_source = Hash::Accessible.new hash end |
#text_for_inspect ⇒ Object
47 48 49 50 51 52 |
# File 'lib/elasticated/document.rb', line 47 def text_for_inspect text = "#{index}/#{type}/#{id}" text = "#{text} v#{version}" if version text = "#{text} scoring #{score}" if score text end |
#to_h ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/elasticated/document.rb', line 54 def to_h { _id: id, _type: type, _index: index, _score: score, _version: version, _source: source.to_h } end |