Query

public struct Query : InternetArchiveURLStringProtocol

The main structure for defining search queries.

It can be created with key: value pairs like ["collection": "etree"] or an array of query clauses. The output is a URL string, such as "collection:(etree) AND -title:(foo)" in asURLString.

Basic Usage:

// generate a query for items in the etree collection
let query = InternetArchive.Query(clauses: ["collection": "etree"])

// generate a query for items not in the etree collection
let query = InternetArchive.Query(clauses: ["-collection": "etree"])

// generate a query for any field with a value of etree
let query = InternetArchive.Query(clauses: ["": "etree"])

Advanced Usage:

let clause1 = InternetArchive.QueryClause(field: "title", value: "String Cheese", booleanOperator: .and)
let clause2 = InternetArchive.QueryClause(field: "foo", value: "bar", booleanOperator: .not)
let dateInterval = DateInterval(start: startDate, end: endDate)
let dateRangeClause = InternetArchive.QueryDateRange(queryField: "date", dateRange: dateInterval)

let query = InternetArchive.Query(clauses: [clause1, clause2, dateRangeClause, sortField])