Atomic updates to parts of Solr documents

update_atomic_json(conn, body, name, wt = "json", raw = FALSE, ...)

Arguments

conn

A solrium connection object, see SolrClient

body

(character) JSON as a character string

name

(character) Name of the core or collection

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

References

https://lucene.apache.org/solr/guide/7_0/updating-parts-of-documents.html

Examples

if (FALSE) { # start Solr in Cloud mode: bin/solr start -e cloud -noprompt # connect (conn <- SolrClient$new()) # create a collection if (!conn$collection_exists("books")) { conn$collection_delete("books") conn$collection_create("books") } # Add documents file <- system.file("examples", "books2.json", package = "solrium") cat(readLines(file), sep = "\n") conn$update_json(file, "books") # get a document conn$get(ids = 343334534545, "books") # atomic update body <- '[{ "id": "343334534545", "genre_s": {"set": "mystery" }, "pages_i": {"inc": 1 } }]' conn$update_atomic_json(body, "books") # get the document again conn$get(ids = 343334534545, "books") # another atomic update body <- '[{ "id": "343334534545", "price": {"remove": "12.5" } }]' conn$update_atomic_json(body, "books") # get the document again conn$get(ids = 343334534545, "books") }