Class: MeiliSearch::Index
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from HTTPRequest
#http_delete, #http_get, #http_post, #http_put
Constructor Details
#initialize(index_uid, url, api_key = nil) ⇒ Index
Returns a new instance of Index.
10
11
12
13
|
# File 'lib/meilisearch/index.rb', line 10
def initialize(index_uid, url, api_key = nil)
@uid = index_uid
super(url, api_key)
end
|
Instance Attribute Details
#uid ⇒ Object
Returns the value of attribute uid.
8
9
10
|
# File 'lib/meilisearch/index.rb', line 8
def uid
@uid
end
|
Instance Method Details
#add_documents(documents, primary_key = nil) ⇒ Object
Also known as:
replace_documents, add_or_replace_documents
49
50
51
52
|
# File 'lib/meilisearch/index.rb', line 49
def add_documents(documents, primary_key = nil)
documents = [documents] if documents.is_a?(Hash)
http_post "/indexes/#{@uid}/documents", documents, { primaryKey: primary_key }.compact
end
|
#attributes_for_faceting ⇒ Object
Also known as:
get_attributes_for_faceting
SETTINGS - ATTRIBUTES FOR FACETING
241
242
243
|
# File 'lib/meilisearch/index.rb', line 241
def attributes_for_faceting
http_get "/indexes/#{@uid}/settings/attributes-for-faceting"
end
|
#delete ⇒ Object
Also known as:
delete_index
25
26
27
|
# File 'lib/meilisearch/index.rb', line 25
def delete
http_delete "/indexes/#{@uid}"
end
|
#delete_all_documents ⇒ Object
77
78
79
|
# File 'lib/meilisearch/index.rb', line 77
def delete_all_documents
http_delete "/indexes/#{@uid}/documents"
end
|
#delete_document(document_id) ⇒ Object
Also known as:
delete_one_document
71
72
73
74
|
# File 'lib/meilisearch/index.rb', line 71
def delete_document(document_id)
encode_document = URI.encode_www_form_component(document_id)
http_delete "/indexes/#{@uid}/documents/#{encode_document}"
end
|
#delete_documents(documents_ids) ⇒ Object
Also known as:
delete_multiple_documents
62
63
64
65
66
67
68
|
# File 'lib/meilisearch/index.rb', line 62
def delete_documents(documents_ids)
if documents_ids.is_a?(Array)
http_post "/indexes/#{@uid}/documents/delete-batch", documents_ids
else
delete_document(documents_ids)
end
end
|
#displayed_attributes ⇒ Object
Also known as:
get_displayed_attributes
SETTINGS - DISPLAYED ATTRIBUTES
226
227
228
|
# File 'lib/meilisearch/index.rb', line 226
def displayed_attributes
http_get "/indexes/#{@uid}/settings/displayed-attributes"
end
|
#distinct_attribute ⇒ Object
Also known as:
get_distinct_attribute
SETTINGS - DINSTINCT ATTRIBUTE
196
197
198
|
# File 'lib/meilisearch/index.rb', line 196
def distinct_attribute
http_get "/indexes/#{@uid}/settings/distinct-attribute"
end
|
#document(document_id) ⇒ Object
Also known as:
get_document, get_one_document
37
38
39
40
|
# File 'lib/meilisearch/index.rb', line 37
def document(document_id)
encode_document = URI.encode_www_form_component(document_id)
http_get "/indexes/#{@uid}/documents/#{encode_document}"
end
|
#documents(options = {}) ⇒ Object
Also known as:
get_documents
44
45
46
|
# File 'lib/meilisearch/index.rb', line 44
def documents(options = {})
http_get "/indexes/#{@uid}/documents", options
end
|
#fields_distribution ⇒ Object
129
130
131
|
# File 'lib/meilisearch/index.rb', line 129
def fields_distribution
stats['fieldsDistribution']
end
|
#get_all_update_status ⇒ Object
94
95
96
|
# File 'lib/meilisearch/index.rb', line 94
def get_all_update_status
http_get "/indexes/#{@uid}/updates"
end
|
#get_update_status(update_id) ⇒ Object
90
91
92
|
# File 'lib/meilisearch/index.rb', line 90
def get_update_status(update_id)
http_get "/indexes/#{@uid}/updates/#{update_id}"
end
|
#indexing? ⇒ Boolean
121
122
123
|
# File 'lib/meilisearch/index.rb', line 121
def indexing?
stats['isIndexing']
end
|
#last_update ⇒ Object
125
126
127
|
# File 'lib/meilisearch/index.rb', line 125
def last_update
stats['lastUpdate']
end
|
#number_of_documents ⇒ Object
117
118
119
|
# File 'lib/meilisearch/index.rb', line 117
def number_of_documents
stats['numberOfDocuments']
end
|
#primary_key ⇒ Object
Also known as:
get_primary_key
30
31
32
|
# File 'lib/meilisearch/index.rb', line 30
def primary_key
show['primaryKey']
end
|
#ranking_rules ⇒ Object
Also known as:
get_ranking_rules
150
151
152
|
# File 'lib/meilisearch/index.rb', line 150
def ranking_rules
http_get "/indexes/#{@uid}/settings/ranking-rules"
end
|
#reset_attributes_for_faceting ⇒ Object
250
251
252
|
# File 'lib/meilisearch/index.rb', line 250
def reset_attributes_for_faceting
http_delete "/indexes/#{@uid}/settings/attributes-for-faceting"
end
|
#reset_displayed_attributes ⇒ Object
235
236
237
|
# File 'lib/meilisearch/index.rb', line 235
def reset_displayed_attributes
http_delete "/indexes/#{@uid}/settings/displayed-attributes"
end
|
#reset_distinct_attribute ⇒ Object
205
206
207
|
# File 'lib/meilisearch/index.rb', line 205
def reset_distinct_attribute
http_delete "/indexes/#{@uid}/settings/distinct-attribute"
end
|
#reset_ranking_rules ⇒ Object
159
160
161
|
# File 'lib/meilisearch/index.rb', line 159
def reset_ranking_rules
http_delete "/indexes/#{@uid}/settings/ranking-rules"
end
|
#reset_searchable_attributes ⇒ Object
220
221
222
|
# File 'lib/meilisearch/index.rb', line 220
def reset_searchable_attributes
http_delete "/indexes/#{@uid}/settings/searchable-attributes"
end
|
#reset_settings ⇒ Object
144
145
146
|
# File 'lib/meilisearch/index.rb', line 144
def reset_settings
http_delete "/indexes/#{@uid}/settings"
end
|
#reset_stop_words ⇒ Object
190
191
192
|
# File 'lib/meilisearch/index.rb', line 190
def reset_stop_words
http_delete "/indexes/#{@uid}/settings/stop-words"
end
|
#reset_synonyms ⇒ Object
174
175
176
|
# File 'lib/meilisearch/index.rb', line 174
def reset_synonyms
http_delete "/indexes/#{@uid}/settings/synonyms"
end
|
#search(query, options = {}) ⇒ Object
83
84
85
86
|
# File 'lib/meilisearch/index.rb', line 83
def search(query, options = {})
parsed_options = options.compact
http_post "/indexes/#{@uid}/search", { q: query }.merge(parsed_options)
end
|
#searchable_attributes ⇒ Object
Also known as:
get_searchable_attributes
SETTINGS - SEARCHABLE ATTRIBUTES
211
212
213
|
# File 'lib/meilisearch/index.rb', line 211
def searchable_attributes
http_get "/indexes/#{@uid}/settings/searchable-attributes"
end
|
#settings ⇒ Object
Also known as:
get_settings
135
136
137
|
# File 'lib/meilisearch/index.rb', line 135
def settings
http_get "/indexes/#{@uid}/settings"
end
|
#show ⇒ Object
Also known as:
show_index
15
16
17
|
# File 'lib/meilisearch/index.rb', line 15
def show
http_get "/indexes/#{@uid}"
end
|
#stats ⇒ Object
113
114
115
|
# File 'lib/meilisearch/index.rb', line 113
def stats
http_get "/indexes/#{@uid}/stats"
end
|
#stop_words ⇒ Object
Also known as:
get_stop_words
180
181
182
|
# File 'lib/meilisearch/index.rb', line 180
def stop_words
http_get "/indexes/#{@uid}/settings/stop-words"
end
|
#synonyms ⇒ Object
Also known as:
get_synonyms
165
166
167
|
# File 'lib/meilisearch/index.rb', line 165
def synonyms
http_get "/indexes/#{@uid}/settings/synonyms"
end
|
#update(body) ⇒ Object
Also known as:
update_index
20
21
22
|
# File 'lib/meilisearch/index.rb', line 20
def update(body)
http_put "/indexes/#{@uid}", body
end
|
#update_attributes_for_faceting(attributes_for_faceting) ⇒ Object
246
247
248
|
# File 'lib/meilisearch/index.rb', line 246
def update_attributes_for_faceting(attributes_for_faceting)
http_post "/indexes/#{@uid}/settings/attributes-for-faceting", attributes_for_faceting
end
|
#update_displayed_attributes(displayed_attributes) ⇒ Object
231
232
233
|
# File 'lib/meilisearch/index.rb', line 231
def update_displayed_attributes(displayed_attributes)
http_post "/indexes/#{@uid}/settings/displayed-attributes", displayed_attributes
end
|
#update_distinct_attribute(distinct_attribute) ⇒ Object
201
202
203
|
# File 'lib/meilisearch/index.rb', line 201
def update_distinct_attribute(distinct_attribute)
http_post "/indexes/#{@uid}/settings/distinct-attribute", distinct_attribute
end
|
#update_documents(documents, primary_key = nil) ⇒ Object
Also known as:
add_or_update_documents
56
57
58
59
|
# File 'lib/meilisearch/index.rb', line 56
def update_documents(documents, primary_key = nil)
documents = [documents] if documents.is_a?(Hash)
http_put "/indexes/#{@uid}/documents", documents, { primaryKey: primary_key }.compact
end
|
#update_ranking_rules(ranking_rules) ⇒ Object
155
156
157
|
# File 'lib/meilisearch/index.rb', line 155
def update_ranking_rules(ranking_rules)
http_post "/indexes/#{@uid}/settings/ranking-rules", ranking_rules
end
|
#update_searchable_attributes(searchable_attributes) ⇒ Object
216
217
218
|
# File 'lib/meilisearch/index.rb', line 216
def update_searchable_attributes(searchable_attributes)
http_post "/indexes/#{@uid}/settings/searchable-attributes", searchable_attributes
end
|
#update_settings(settings) ⇒ Object
140
141
142
|
# File 'lib/meilisearch/index.rb', line 140
def update_settings(settings)
http_post "/indexes/#{@uid}/settings", settings
end
|
#update_stop_words(stop_words) ⇒ Object
185
186
187
188
|
# File 'lib/meilisearch/index.rb', line 185
def update_stop_words(stop_words)
body = stop_words.is_a?(Array) ? stop_words : [stop_words]
http_post "/indexes/#{@uid}/settings/stop-words", body
end
|
#update_synonyms(synonyms) ⇒ Object
170
171
172
|
# File 'lib/meilisearch/index.rb', line 170
def update_synonyms(synonyms)
http_post "/indexes/#{@uid}/settings/synonyms", synonyms
end
|
#wait_for_pending_update(update_id, timeout_in_ms = 5000, interval_in_ms = 50) ⇒ Object
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/meilisearch/index.rb', line 98
def wait_for_pending_update(update_id, timeout_in_ms = 5000, interval_in_ms = 50)
Timeout.timeout(timeout_in_ms.to_f / 1000) do
loop do
get_update = get_update_status(update_id)
return get_update if get_update['status'] != 'enqueued'
sleep interval_in_ms.to_f / 1000
end
end
rescue Timeout::Error
raise MeiliSearch::TimeoutError
end
|