Add documents from R objects

add(
  x,
  conn,
  name,
  commit = TRUE,
  commit_within = NULL,
  overwrite = TRUE,
  boost = NULL,
  wt = "json",
  raw = FALSE,
  ...
)

Arguments

x

Documents, either as rows in a data.frame, or a list.

conn

A solrium connection object, see SolrClient

name

(character) A collection or core name. Required.

commit

(logical) If TRUE, documents immediately searchable. Default: TRUE

commit_within

(numeric) Milliseconds to commit the change, the document will be added within that time. Default: NULL

overwrite

(logical) Overwrite documents with matching keys. Default: TRUE

boost

(numeric) Boost factor. Default: NULL

wt

(character) One of json (default) or xml. If json, uses jsonlite::fromJSON() to parse. If xml, uses xml2::read_xml() to parse

raw

(logical) If TRUE, returns raw data in format specified by wt param

...

curl options passed on to crul::HttpClient

Details

Works for Collections as well as Cores (in SolrCloud and Standalone modes, respectively)

See also

update_json, update_xml, update_csv for adding documents from files

Examples

if (FALSE) { (conn <- SolrClient$new()) # create the boooks collection if (!collection_exists(conn, "books")) { collection_create(conn, name = "books", numShards = 1) } # Documents in a list ss <- list(list(id = 1, price = 100), list(id = 2, price = 500)) add(ss, conn, name = "books") conn$get(c(1, 2), "books") # Documents in a data.frame ## Simple example df <- data.frame(id = c(67, 68), price = c(1000, 500000000)) add(df, conn, "books") df <- data.frame(id = c(77, 78), price = c(1, 2.40)) add(df, conn, "books") ## More complex example, get file from package examples # start Solr in Schemaless mode first: bin/solr start -e schemaless file <- system.file("examples", "books.csv", package = "solrium") x <- read.csv(file, stringsAsFactors = FALSE) class(x) head(x) if (!collection_exists(conn, "mybooks")) { collection_create(conn, name = "mybooks", numShards = 2) } add(x, conn, "mybooks") # Use modifiers add(x, conn, "mybooks", commit_within = 5000) # Get back XML instead of a list ss <- list(list(id = 1, price = 100), list(id = 2, price = 500)) # parsed XML add(ss, conn, name = "books", wt = "xml") # raw XML add(ss, conn, name = "books", wt = "xml", raw = TRUE) }