Use the bulk API to create documents
Usage
docs_bulk_create(
  conn,
  x,
  index = NULL,
  type = NULL,
  chunk_size = 1000,
  doc_ids = NULL,
  es_ids = TRUE,
  raw = FALSE,
  quiet = FALSE,
  query = list(),
  ...
)Arguments
- conn
- an Elasticsearch connection object, see - connect()
- x
- A list, data.frame, or character path to a file. required. 
- index
- (character) The index name to use. Required for data.frame input, but optional for file inputs. 
- type
- (character) The type. default: - NULL. Note that- typeis deprecated in Elasticsearch v7 and greater, and removed in Elasticsearch v8
- chunk_size
- (integer) Size of each chunk. If your data.frame is smaller thank - chunk_size, this parameter is essentially ignored. We write in chunks because at some point, depending on size of each document, and Elasticsearch setup, writing a very large number of documents in one go becomes slow, so chunking can help. This parameter is ignored if you pass a file name. Default: 1000
- doc_ids
- An optional vector (character or numeric/integer) of document ids to use. This vector has to equal the size of the documents you are passing in, and will error if not. If you pass a factor we convert to character. Default: not passed 
- es_ids
- (boolean) Let Elasticsearch assign document IDs as UUIDs. These are sequential, so there is order to the IDs they assign. If - TRUE,- doc_idsis ignored. Default:- TRUE
- raw
- (logical) Get raw JSON back or not. If - TRUEyou get JSON; if- FALSEyou get a list. Default:- FALSE
- quiet
- (logical) Suppress progress bar. Default: - FALSE
- query
- (list) a named list of query parameters. optional. options include: pipeline, refresh, routing, _source, _source_excludes, _source_includes, timeout, wait_for_active_shards. See the docs bulk ES page for details 
- ...
- Pass on curl options to crul::HttpClient 
Details
For doing create with a file already prepared for the bulk API,
see docs_bulk()
Only data.frame's are supported for now.
See also
Other bulk-functions:
docs_bulk_delete(),
docs_bulk_index(),
docs_bulk_prep(),
docs_bulk_update(),
docs_bulk()
Examples
if (FALSE) { # \dontrun{
x <- connect()
if (index_exists(x, "foobar")) index_delete(x, "foobar")
df <- data.frame(name = letters[1:3], size = 1:3, id = 100:102)
docs_bulk_create(x, df, 'foobar', es_ids = FALSE)
Search(x, "foobar", asdf = TRUE)$hits$hits
# more examples
docs_bulk_create(x, mtcars, index = "hello")
## field names cannot contain dots
names(iris) <- gsub("\\.", "_", names(iris))
docs_bulk_create(x, iris, "iris")
## type can be missing, but index can not
docs_bulk_create(x, iris, "flowers")
## big data.frame, 53K rows, load ggplot2 package first
# res <- docs_bulk_create(x, diamonds, "diam")
# Search(x, "diam")$hits$total$value
} # }
