R: Add documents from R objects

add {solrium} | R Documentation

## Add documents from R objects

### Description

Add documents from R objects

### Usage

    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 `fromJSON` to parse. If xml, uses `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

    ## Not run:
    (cli <- SolrClient$new())

    # create the boooks collection
    if (!collection_exists(cli, "books")) {
      collection_create(cli, name = "books", numShards = 1)
    }

    # Documents in a list
    ss <- list(list(id = 1, price = 100), list(id = 2, price = 500))
    add(ss, cli, name = "books")
    cli$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, cli, "books")
    df <- data.frame(id = c(77, 78), price = c(1, 2.40))
    add(df, "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("mybooks")) {
      collection_create(name = "mybooks", numShards = 2)
    }
    add(x, "mybooks")

    # Use modifiers
    add(x, "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, name = "books", wt = "xml")
    # raw XML
    add(ss, name = "books", wt = "xml", raw = TRUE)

    ## End(Not run)

[Package solrium version 1.0.0 Index]