module Elastic::SiteSearch::Client::Document
Documents have fields that can be searched or filtered.
For more information on indexing documents, see the REST API indexing documentation.
Public Instance Methods
# File lib/elastic/site-search/client.rb, line 335 def async_create_or_update_documents(engine_id, document_type_id, documents=[]) post("engines/#{engine_id}/document_types/#{document_type_id}/documents/async_bulk_create_or_update.json", :documents => documents) end
# File lib/elastic/site-search/client.rb, line 299 def create_document(engine_id, document_type_id, document={}) post("engines/#{engine_id}/document_types/#{document_type_id}/documents.json", :document => document) end
# File lib/elastic/site-search/client.rb, line 303 def create_documents(engine_id, document_type_id, documents=[]) post("engines/#{engine_id}/document_types/#{document_type_id}/documents/bulk_create.json", :documents => documents) end
# File lib/elastic/site-search/client.rb, line 315 def create_or_update_document(engine_id, document_type_id, document={}) post("engines/#{engine_id}/document_types/#{document_type_id}/documents/create_or_update.json", :document => document) end
# File lib/elastic/site-search/client.rb, line 319 def create_or_update_documents(engine_id, document_type_id, documents=[]) post("engines/#{engine_id}/document_types/#{document_type_id}/documents/bulk_create_or_update.json", :documents => documents) end
# File lib/elastic/site-search/client.rb, line 323 def create_or_update_documents_verbose(engine_id, document_type_id, documents=[]) post("engines/#{engine_id}/document_types/#{document_type_id}/documents/bulk_create_or_update_verbose.json", :documents => documents) end
# File lib/elastic/site-search/client.rb, line 307 def destroy_document(engine_id, document_type_id, document_id) delete("engines/#{engine_id}/document_types/#{document_type_id}/documents/#{document_id}.json") end
# File lib/elastic/site-search/client.rb, line 311 def destroy_documents(engine_id, document_type_id, document_ids=[]) post("engines/#{engine_id}/document_types/#{document_type_id}/documents/bulk_destroy.json", :documents => document_ids) end
# File lib/elastic/site-search/client.rb, line 295 def document(engine_id, document_type_id, document_id) get("engines/#{engine_id}/document_types/#{document_type_id}/documents/#{document_id}.json") end
Retrieve Document
Receipts from the API by ID
@param [Array<String>] receipt_ids an Array of Document
Receipt IDs
@return [Array<Hash>] an Array of Document
Receipt hashes
# File lib/elastic/site-search/client.rb, line 344 def document_receipts(receipt_ids) post("document_receipts.json", :ids => receipt_ids) end
# File lib/elastic/site-search/client.rb, line 288 def documents(engine_id, document_type_id, page=nil, per_page=nil) options = {} options[:page] = page if page options[:per_page] = per_page if per_page get("engines/#{engine_id}/document_types/#{document_type_id}/documents.json", options) end
Index a batch of documents using the asynchronous API. This is a good choice if you have a large number of documents.
@param [String] engine_id the Engine
slug or ID @param [String] document_type_id the Document
Type slug or ID @param [Array] documents an Array of Document
Hashes @param [Hash] options additional options @option options [Boolean] :async (false) When true, output is document receipts created. When false, poll until all receipts are no longer pending or timeout is reached. @option options [Numeric] :timeout (10) Number of seconds to wait before raising an exception
@return [Array<Hash>] an Array of newly-created Document
Receipt hashes if used in :async => true mode @return [Array<Hash>] an Array of processed Document
Receipt hashes if used in :async => false mode
@raise [Timeout::Error] when used in :async => false mode and the timeout expires
# File lib/elastic/site-search/client.rb, line 362 def index_documents(engine_id, document_type_id, documents = [], options = {}) documents = wrap(documents) res = async_create_or_update_documents(engine_id, document_type_id, documents) if options[:async] res else receipt_ids = res["document_receipts"].map { |a| a["id"] } poll(options) do receipts = document_receipts(receipt_ids) flag = receipts.all? { |a| a["status"] != "pending" } flag ? receipts : false end end end
# File lib/elastic/site-search/client.rb, line 327 def update_document(engine_id, document_type_id, document_id, fields) put("engines/#{engine_id}/document_types/#{document_type_id}/documents/#{document_id}/update_fields.json", { :fields => fields }) end
# File lib/elastic/site-search/client.rb, line 331 def update_documents(engine_id, document_type_id, documents={}) put("engines/#{engine_id}/document_types/#{document_type_id}/documents/bulk_update.json", { :documents => documents }) end