Skip to contents

Query SB for items using generic query parameters

Usage

query_items(query_list, ...)

Arguments

query_list

List of item query selectors. See Details.

...

Additional parameters are passed on to GET

Value

An object of class response

Details

The following is a list of query parameters you can use in the query_list parameter.

  • s (character): Only option: "Search"

  • format (character): One of "json", "xml", "csv", or "atom"

  • q (character): Query string

  • q (character): Lucene query string

  • max (integer): Number of records to return. Default: 20

  • offset (integer): Record to start at. Default: 1

  • fields (character): Character vector of fields to return

  • folderId (character): Alphanumeric string representing folder ID

  • parentId (character): Alphanumeric string representing folder ID. This can be used to return all children items within the folder, but not within sub-folders.

  • sort (character) One of "firstContact", "dateCreated", "lastUpdated", or "title". By default sorted by search score

  • order (character) One of "asc" or "desc"

  • ids Vector of item ids.

  • ancestors (character): Alphanumeric string representing folder ID. This can be used to return all children items within the folder, even within sub-folders. Used as a filter

  • tags Filter by tags, e.g, "distribution". Used as a filter

  • browseCategory One of .... Used as a filter

  • browseType One of .... Used as a filter

  • dateRange A json string with keys dateType and choice. Where dateType is one of Acquisition, Award, Collected, dateCreated, Received, Reported, Transmitted, Due, End, Info, lastUpdated, Publication, Release, or Start. And where choice is one of day, week, month, year, or range (if range selected, also supply start and end keys with dates of the form YYYY-MM-DD). Used as a filter

  • projectStatus One of Active, Approved, Completed, In Progress, Proposed. Used as a filter

  • spatialQuery A WKT string. Used as a filter

  • extentQuery Use existing extents (footprints) to search against item bounding boxes and representational points. This is a alphanumeric string.

Examples

if (FALSE) {
# Basic query
library("httr")
res <- query_items(list(s = "Search", q = "water", format = "json"))
httr::content(res)

# Paging
## max - number of results
res <- query_items(list(s = "Search", q = "water", format = "json", max = 2))
length(httr::content(res)$items)
res <- query_items(list(s = "Search", q = "water", format = "json", max = 30))
length(httr::content(res)$items)
## offset - start at certain record
res <- query_items(list(s = "Search", q = "water", format = "json", 
max = 30, offset = 10))
httr::content(res)
## links - use links given in output for subsequent queries
httr::content(httr::GET(
    content(res)$nextlink$url
))

# Return only certain fields
res <- query_items(list(s = "Search", q = "water", format = "json", fields = 'title'))
httr::content(res)$items[[1]]

# Search a folder ID
res <- query_items(list(s = "Search", q = "water", format = "json", 
folderId = '504216b9e4b04b508bfd337d'))
httr::content(res)$items

# Filter by ancestor
query_items(list(s = "Search", ancestors = "4f831626e4b0e84f6086809b", format = "json"))

# Filter by tags
content(query_items(list(s = "Search", tags = "distribution", format = "json")))

# Filter by browse category
content(query_items(list(s = "Search", browseCategory = "Image", format = "json")))

# Filter by browse type
content(query_items(list(s = "Search", browseType = "Collection", format = "json")))

# Filter by WKT geometry string
wkt1 <- "POLYGON((-104.4 41.0,-95.1 41.0,-95.1 37.5,-104.4 37.5,-104.4 41.0))"
wkt2 <- "POLYGON((-104.4 38.3,-95.2 38.3,-95.2 33.7,-104.4 34.0,-104.4 38.3))"
content(query_items(list(s = "Search", spatialQuery = wkt1, format = "json")))
content(query_items(list(s = "Search", spatialQuery = wkt1, 
    spatialQuery = wkt2, format = "json")))

# Project status
content(query_items(list(s = "Search", projectStatus = "Active", format = "json")))

# Date range
query_items(list(s = "Search", 
    dateRange = '{"dateType":"Collected","choice":"year"}', format = "json"))
query_items(list(s = "Search", 
    dateRange = '{"dateType":"lastUpdated","choice":"month"}', format = "json"))
query_items(list(s = "Search", 
    dateRange = 
    '{"dateType":"Release","choice":"range","start":"2014-09-01","end":"2015-09-01"}', 
    format = "json"))

# Extent query
## just a alphanumeric code
content(query_items(list(s = "Search", extentQuery = '2873462', format = "json")))
## with buffering, intersect
content(query_items(list(s = "Search", extentQuery = '{"extent":2873462,
    "relation":"intersects","buffer":"5"}', format = "json")))
## with buffering, within
content(query_items(list(s = "Search", extentQuery = '{"extent":2873462,
    "relation":"within","buffer":"5"}', format = "json")))
## with buffering, within
content(query_items(list(s = "Search", extentQuery = '{"extent":2873462,
    "relation":"disjoint","buffer":"5"}', format = "json")))
    
# Lucene query
## note, you have to pass the q parameter if you pass the lq parameter
content(query_items(list(s = "Search", q = "", lq = '"sage OR grouse"')))
}