class MeiliSearch::Index
Attributes
primary_key[R]
uid[R]
Public Class Methods
new(index_uid, url, api_key = nil, primary_key = nil, options = {})
click to toggle source
Calls superclass method
MeiliSearch::HTTPRequest::new
# File lib/meilisearch/index.rb, line 10 def initialize(index_uid, url, api_key = nil, primary_key = nil, options = {}) @uid = index_uid @primary_key = primary_key super(url, api_key, options) end
Public Instance Methods
achieved_upate?(update)
click to toggle source
# File lib/meilisearch/index.rb, line 132 def achieved_upate?(update) update['status'] != 'enqueued' && update['status'] != 'processing' end
add_documents(documents, primary_key = nil)
click to toggle source
# File lib/meilisearch/index.rb, line 53 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
Also aliased as: replace_documents, add_or_replace_documents
add_documents!(documents, primary_key = nil)
click to toggle source
# File lib/meilisearch/index.rb, line 60 def add_documents!(documents, primary_key = nil) update = add_documents(documents, primary_key) wait_for_pending_update(update['updateId']) end
Also aliased as: replace_documents!, add_or_replace_documents!
delete()
click to toggle source
# File lib/meilisearch/index.rb, line 29 def delete http_delete "/indexes/#{@uid}" end
Also aliased as: delete_index
delete_all_documents()
click to toggle source
# File lib/meilisearch/index.rb, line 106 def delete_all_documents http_delete "/indexes/#{@uid}/documents" end
delete_all_documents!()
click to toggle source
# File lib/meilisearch/index.rb, line 110 def delete_all_documents! update = delete_all_documents wait_for_pending_update(update['updateId']) end
delete_document(document_id)
click to toggle source
# File lib/meilisearch/index.rb, line 94 def delete_document(document_id) encode_document = URI.encode_www_form_component(document_id) http_delete "/indexes/#{@uid}/documents/#{encode_document}" end
Also aliased as: delete_one_document
delete_document!(document_id)
click to toggle source
# File lib/meilisearch/index.rb, line 100 def delete_document!(document_id) update = delete_document(document_id) wait_for_pending_update(update['updateId']) end
Also aliased as: delete_one_document!
delete_documents(documents_ids)
click to toggle source
# File lib/meilisearch/index.rb, line 79 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
Also aliased as: delete_multiple_documents
delete_documents!(documents_ids)
click to toggle source
# File lib/meilisearch/index.rb, line 88 def delete_documents!(documents_ids) update = delete_documents(documents_ids) wait_for_pending_update(update['updateId']) end
Also aliased as: delete_multiple_documents!
displayed_attributes()
click to toggle source
SETTINGS - DISPLAYED ATTRIBUTES
# File lib/meilisearch/index.rb, line 270 def displayed_attributes http_get "/indexes/#{@uid}/settings/displayed-attributes" end
Also aliased as: get_displayed_attributes
distinct_attribute()
click to toggle source
SETTINGS - DINSTINCT ATTRIBUTE
# File lib/meilisearch/index.rb, line 238 def distinct_attribute http_get "/indexes/#{@uid}/settings/distinct-attribute" end
Also aliased as: get_distinct_attribute
document(document_id)
click to toggle source
DOCUMENTS
# File lib/meilisearch/index.rb, line 41 def document(document_id) encode_document = URI.encode_www_form_component(document_id) http_get "/indexes/#{@uid}/documents/#{encode_document}" end
Also aliased as: get_document, get_one_document
documents(options = {})
click to toggle source
# File lib/meilisearch/index.rb, line 48 def documents(options = {}) http_get "/indexes/#{@uid}/documents", options end
Also aliased as: get_documents
fetch_info()
click to toggle source
# File lib/meilisearch/index.rb, line 16 def fetch_info index_hash = http_get "/indexes/#{@uid}" @primary_key = index_hash['primaryKey'] self end
fetch_primary_key()
click to toggle source
# File lib/meilisearch/index.rb, line 34 def fetch_primary_key fetch_info.primary_key end
Also aliased as: get_primary_key
field_distribution()
click to toggle source
# File lib/meilisearch/index.rb, line 167 def field_distribution stats['fieldDistribution'] end
filterable_attributes()
click to toggle source
SETTINGS - FILTERABLE ATTRIBUTES
# File lib/meilisearch/index.rb, line 286 def filterable_attributes http_get "/indexes/#{@uid}/settings/filterable-attributes" end
Also aliased as: get_filterable_attributes
get_all_update_status()
click to toggle source
# File lib/meilisearch/index.rb, line 128 def get_all_update_status http_get "/indexes/#{@uid}/updates" end
get_update_status(update_id)
click to toggle source
UPDATES
# File lib/meilisearch/index.rb, line 124 def get_update_status(update_id) http_get "/indexes/#{@uid}/updates/#{update_id}" end
indexing?()
click to toggle source
# File lib/meilisearch/index.rb, line 159 def indexing? stats['isIndexing'] end
last_update()
click to toggle source
# File lib/meilisearch/index.rb, line 163 def last_update stats['lastUpdate'] end
number_of_documents()
click to toggle source
# File lib/meilisearch/index.rb, line 155 def number_of_documents stats['numberOfDocuments'] end
ranking_rules()
click to toggle source
SETTINGS - RANKING RULES
# File lib/meilisearch/index.rb, line 189 def ranking_rules http_get "/indexes/#{@uid}/settings/ranking-rules" end
Also aliased as: get_ranking_rules
reset_displayed_attributes()
click to toggle source
# File lib/meilisearch/index.rb, line 280 def reset_displayed_attributes http_delete "/indexes/#{@uid}/settings/displayed-attributes" end
reset_distinct_attribute()
click to toggle source
# File lib/meilisearch/index.rb, line 248 def reset_distinct_attribute http_delete "/indexes/#{@uid}/settings/distinct-attribute" end
reset_filterable_attributes()
click to toggle source
# File lib/meilisearch/index.rb, line 296 def reset_filterable_attributes http_delete "/indexes/#{@uid}/settings/filterable-attributes" end
reset_ranking_rules()
click to toggle source
# File lib/meilisearch/index.rb, line 199 def reset_ranking_rules http_delete "/indexes/#{@uid}/settings/ranking-rules" end
reset_searchable_attributes()
click to toggle source
# File lib/meilisearch/index.rb, line 264 def reset_searchable_attributes http_delete "/indexes/#{@uid}/settings/searchable-attributes" end
reset_settings()
click to toggle source
# File lib/meilisearch/index.rb, line 183 def reset_settings http_delete "/indexes/#{@uid}/settings" end
reset_sortable_attributes()
click to toggle source
# File lib/meilisearch/index.rb, line 312 def reset_sortable_attributes http_delete "/indexes/#{@uid}/settings/sortable-attributes" end
reset_stop_words()
click to toggle source
# File lib/meilisearch/index.rb, line 232 def reset_stop_words http_delete "/indexes/#{@uid}/settings/stop-words" end
reset_synonyms()
click to toggle source
# File lib/meilisearch/index.rb, line 215 def reset_synonyms http_delete "/indexes/#{@uid}/settings/synonyms" end
search(query, options = {})
click to toggle source
SEARCH
# File lib/meilisearch/index.rb, line 117 def search(query, options = {}) parsed_options = options.compact http_post "/indexes/#{@uid}/search", { q: query.to_s }.merge(parsed_options) end
searchable_attributes()
click to toggle source
SETTINGS - SEARCHABLE ATTRIBUTES
# File lib/meilisearch/index.rb, line 254 def searchable_attributes http_get "/indexes/#{@uid}/settings/searchable-attributes" end
Also aliased as: get_searchable_attributes
settings()
click to toggle source
SETTINGS - GENERAL
# File lib/meilisearch/index.rb, line 173 def settings http_get "/indexes/#{@uid}/settings" end
Also aliased as: get_settings
sortable_attributes()
click to toggle source
SETTINGS - SORTABLE ATTRIBUTES
# File lib/meilisearch/index.rb, line 302 def sortable_attributes http_get "/indexes/#{@uid}/settings/sortable-attributes" end
Also aliased as: get_sortable_attributes
stats()
click to toggle source
STATS
# File lib/meilisearch/index.rb, line 151 def stats http_get "/indexes/#{@uid}/stats" end
stop_words()
click to toggle source
SETTINGS - STOP-WORDS
# File lib/meilisearch/index.rb, line 221 def stop_words http_get "/indexes/#{@uid}/settings/stop-words" end
Also aliased as: get_stop_words
synonyms()
click to toggle source
SETTINGS - SYNONYMS
# File lib/meilisearch/index.rb, line 205 def synonyms http_get "/indexes/#{@uid}/settings/synonyms" end
Also aliased as: get_synonyms
update(body)
click to toggle source
# File lib/meilisearch/index.rb, line 22 def update(body) index_hash = http_put "/indexes/#{@uid}", body @primary_key = index_hash['primaryKey'] self end
Also aliased as: update_index
update_displayed_attributes(displayed_attributes)
click to toggle source
# File lib/meilisearch/index.rb, line 275 def update_displayed_attributes(displayed_attributes) http_post "/indexes/#{@uid}/settings/displayed-attributes", displayed_attributes end
Also aliased as: displayed_attributes=
update_distinct_attribute(distinct_attribute)
click to toggle source
# File lib/meilisearch/index.rb, line 243 def update_distinct_attribute(distinct_attribute) http_post "/indexes/#{@uid}/settings/distinct-attribute", distinct_attribute end
Also aliased as: distinct_attribute=
update_documents(documents, primary_key = nil)
click to toggle source
# File lib/meilisearch/index.rb, line 67 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
Also aliased as: add_or_update_documents
update_documents!(documents, primary_key = nil)
click to toggle source
# File lib/meilisearch/index.rb, line 73 def update_documents!(documents, primary_key = nil) update = update_documents(documents, primary_key) wait_for_pending_update(update['updateId']) end
Also aliased as: add_or_update_documents!
update_filterable_attributes(filterable_attributes)
click to toggle source
# File lib/meilisearch/index.rb, line 291 def update_filterable_attributes(filterable_attributes) http_post "/indexes/#{@uid}/settings/filterable-attributes", filterable_attributes end
Also aliased as: filterable_attributes=
update_ranking_rules(ranking_rules)
click to toggle source
# File lib/meilisearch/index.rb, line 194 def update_ranking_rules(ranking_rules) http_post "/indexes/#{@uid}/settings/ranking-rules", ranking_rules end
Also aliased as: ranking_rules=
update_searchable_attributes(searchable_attributes)
click to toggle source
# File lib/meilisearch/index.rb, line 259 def update_searchable_attributes(searchable_attributes) http_post "/indexes/#{@uid}/settings/searchable-attributes", searchable_attributes end
Also aliased as: searchable_attributes=
update_settings(settings)
click to toggle source
# File lib/meilisearch/index.rb, line 178 def update_settings(settings) http_post "/indexes/#{@uid}/settings", settings end
Also aliased as: settings=
update_sortable_attributes(sortable_attributes)
click to toggle source
# File lib/meilisearch/index.rb, line 307 def update_sortable_attributes(sortable_attributes) http_post "/indexes/#{@uid}/settings/sortable-attributes", sortable_attributes end
Also aliased as: sortable_attributes=
update_stop_words(stop_words)
click to toggle source
# File lib/meilisearch/index.rb, line 226 def update_stop_words(stop_words) body = stop_words.nil? || stop_words.is_a?(Array) ? stop_words : [stop_words] http_post "/indexes/#{@uid}/settings/stop-words", body end
Also aliased as: stop_words=
update_synonyms(synonyms)
click to toggle source
# File lib/meilisearch/index.rb, line 210 def update_synonyms(synonyms) http_post "/indexes/#{@uid}/settings/synonyms", synonyms end
Also aliased as: synonyms=
wait_for_pending_update(update_id, timeout_in_ms = 5000, interval_in_ms = 50)
click to toggle source
# File lib/meilisearch/index.rb, line 136 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 achieved_upate?(get_update) sleep interval_in_ms.to_f / 1000 end end rescue Timeout::Error raise MeiliSearch::TimeoutError end