Class: Elasticated::Repository

Inherits:
Object
  • Object
show all
Includes:
Mixins::Configurable
Defined in:
lib/elasticated/repository.rb,
lib/elasticated/repository/search.rb,
lib/elasticated/repository/normal_search.rb,
lib/elasticated/repository/scroll_search.rb,
lib/elasticated/repository/resumable_search.rb,
lib/elasticated/repository/intelligent_search.rb,
lib/elasticated/repository/scan_scroll_search.rb,
lib/elasticated/repository/single_page_search.rb

Direct Known Subclasses

PartitionedRepository

Defined Under Namespace

Classes: IntelligentSearch, NormalSearch, ResumableSearch, ScanScrollSearch, ScrollSearch, Search, SinglePageSearch

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Mixins::Configurable

delegated

Constructor Details

#initialize(opts = {}) ⇒ Repository

Returns a new instance of Repository.



18
19
20
# File 'lib/elasticated/repository.rb', line 18

def initialize(opts={})
  self.client = Client.new opts
end

Instance Attribute Details

#clientObject

PRE-ACTION METHODS ———————————————————- child can implement params_for_document(document, original_params={}) => Hash child can implement params_for_query(query, original_params={}) => Hash child can implement params_for_source(source, original_params={}) => Hash child can implement params_for_ids(ids, original_params={}) => Hash child can implement params_for_percolator(original_params={}) => Hash POST-ACTION METHODS ——————————————————— child can implement prepare_source(source) => Hash child can implement restore_source(source) => Hash




16
17
18
# File 'lib/elasticated/repository.rb', line 16

def client
  @client
end

Instance Method Details

#create_percolator(query, opts = {}) ⇒ Object



56
57
58
# File 'lib/elasticated/repository.rb', line 56

def create_percolator(query, opts={})
  prepare_query_action :prepare_percolator_action, query, opts
end

#delete_by_query(query, opts = {}) ⇒ Object Also known as: delete_by



38
39
40
# File 'lib/elasticated/repository.rb', line 38

def delete_by_query(query, opts={})
  prepare_query_action :delete_by_query, query, opts
end

#delete_document(document_id, opts = {}) ⇒ Object



69
70
71
# File 'lib/elasticated/repository.rb', line 69

def delete_document(document_id, opts={})
  prepare_ids_action :delete_document, Array(document_id), opts
end

#execute_aggregated_search(query, opts = {}) ⇒ Object



34
35
36
# File 'lib/elasticated/repository.rb', line 34

def execute_aggregated_search(query, opts={})
  prepare_query_action :aggregated_search, query, opts
end

#execute_aggregations(query, opts = {}) ⇒ Object



26
27
28
# File 'lib/elasticated/repository.rb', line 26

def execute_aggregations(query, opts={})
  prepare_query_action :aggregations, query, opts
end

#execute_bulk(bulk_request) ⇒ Object



85
86
87
88
# File 'lib/elasticated/repository.rb', line 85

def execute_bulk(bulk_request)
  result = client.bulk bulk_request.build
  bulk_request.parse result
end

#execute_count(query, opts = {}) ⇒ Object



30
31
32
# File 'lib/elasticated/repository.rb', line 30

def execute_count(query, opts={})
  prepare_query_action :count, query, opts
end

#execute_search(query, opts = {}) ⇒ Object



22
23
24
# File 'lib/elasticated/repository.rb', line 22

def execute_search(query, opts={})
  prepare_query_action :search, query, opts
end

#exists?(query, opts = {}) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/elasticated/repository.rb', line 43

def exists?(query, opts={})
  execute_count(query, opts) > 0
end

#get_document(document_id_or_ids, opts = {}) ⇒ Object Also known as: get_documents



64
65
66
# File 'lib/elasticated/repository.rb', line 64

def get_document(document_id_or_ids, opts={})
  prepare_ids_action :variable_get, Array(document_id_or_ids), opts
end

#index_document(document, opts = {}) ⇒ Object



47
48
49
# File 'lib/elasticated/repository.rb', line 47

def index_document(document, opts={})
  prepare_document_action :index_document, document, opts
end

#params_for_document(document, original_params = {}) ⇒ Object

params preparation



92
93
94
# File 'lib/elasticated/repository.rb', line 92

def params_for_document(document, original_params={})
  original_params
end

#params_for_ids(ids, original_params = {}) ⇒ Object



104
105
106
# File 'lib/elasticated/repository.rb', line 104

def params_for_ids(ids, original_params={})
  original_params
end

#params_for_percolator(original_params = {}) ⇒ Object



108
109
110
# File 'lib/elasticated/repository.rb', line 108

def params_for_percolator(original_params={})
  original_params
end

#params_for_query(query, original_params = {}) ⇒ Object



96
97
98
# File 'lib/elasticated/repository.rb', line 96

def params_for_query(query, original_params={})
  original_params
end

#params_for_source(source, original_params = {}) ⇒ Object



100
101
102
# File 'lib/elasticated/repository.rb', line 100

def params_for_source(source, original_params={})
  original_params
end

#percolate_document(document, opts = {}) ⇒ Object



60
61
62
# File 'lib/elasticated/repository.rb', line 60

def percolate_document(document, opts={})
  prepare_document_action :prepare_percolator_action, document, opts
end

#prepare_bulk(&block) ⇒ Object



81
82
83
# File 'lib/elasticated/repository.rb', line 81

def prepare_bulk(&block)
  BulkRequest.build_over(self, &block)
end

#prepare_document(document) ⇒ Object



122
123
124
125
126
127
128
129
# File 'lib/elasticated/repository.rb', line 122

def prepare_document(document)
  params = params_for_document document
  translated_document = document.clone
  translated_document.source = prepare_source Helpers.hash_deep_dup document.source
  translated_document.index = params[:index] if params[:index]
  translated_document.type = params[:type] if params[:type]
  translated_document
end

#prepare_search(query, opts = {}) ⇒ Object



73
74
75
# File 'lib/elasticated/repository.rb', line 73

def prepare_search(query, opts={})
  prepare_query_action :prepare_search, query, opts
end

#prepare_source(source) ⇒ Object

document translation



114
115
116
# File 'lib/elasticated/repository.rb', line 114

def prepare_source(source)
  source
end

#restore_search(scroll_id) ⇒ Object



77
78
79
# File 'lib/elasticated/repository.rb', line 77

def restore_search(scroll_id)
  ResumableSearch.from_scroll_id self, scroll_id
end

#restore_source(source) ⇒ Object



118
119
120
# File 'lib/elasticated/repository.rb', line 118

def restore_source(source)
  source
end

#update_document(document_id, opts = {}) ⇒ Object



51
52
53
54
# File 'lib/elasticated/repository.rb', line 51

def update_document(document_id, opts={})
  source = opts.delete(:source) || raise("No body specified for partial update")
  prepare_source_action :update_document, source, opts.merge(id: document_id)
end