Class
SearchQueryBuilder can be used to construct the q param for searchItems or searchGroups .
By chaining methods, it helps build complex search queries.
const startDate = new Date("2020-01-01");
const endDate = new Date("2020-09-01");
const query = new SearchQueryBuilder()
.match("Patrick")
.in("owner")
.and()
.from(startDate)
.to(endDate)
.in("created")
.and()
.startGroup()
.match("Web Mapping Application")
.in("type")
.or()
.match("Mobile Application")
.in("type")
.or()
.match("Application")
.in("type")
.endGroup()
.and()
.match("Demo App");
searchItems(query).then((res) => {
console.log(res.results);
});Will search for items matching
"owner: Patrick AND created:[1577836800000 TO 1598918400000] AND (type:"Web Mapping Application" OR type:"Mobile Application" OR type:Application) AND Demo App"Implements
Constructors
constructor
Class ConstructorSearchQueryBuilder(q: string): SearchQueryBuilderParameters
| Parameter | Type | Default | Notes |
|---|---|---|---|
q | string | "" | An existing query string to start building from. |
Returns
SearchQueryBuilderMethods
| Method | Returns | Notes |
|---|---|---|
and(this) | SearchQueryBuilder | Joins two sets of queries with an |
boost(this, num) | SearchQueryBuilder | Boosts the previous term to increase its rank in the results. |
clone() | SearchQueryBuilder | Returns a new instance of |
endGroup(this) | SearchQueryBuilder | Ends a search group. |
from(this, term) | SearchQueryBuilder | Begins a new range query. |
in(this, field?) | SearchQueryBuilder | Defines fields to search in. You can pass |
match(this, terms) | SearchQueryBuilder | Defines strings to search for. |
not(this) | SearchQueryBuilder | Joins two sets of queries with a |
or(this) | SearchQueryBuilder | Joins two sets of queries with an |
startGroup(this) | SearchQueryBuilder | Starts a new search group. |
to(this, term) | SearchQueryBuilder | Ends a range query. |
toParam() | string | Returns the current query string. Called internally when the request is made. |
and
Class Methodand(this: SearchQueryBuilder): SearchQueryBuilderJoins two sets of queries with an AND clause.
const query = new SearchQueryBuilder()
.match("Lakes")
.in("title")
.and()
.match("Rivers")
.in("title")Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
Returns
SearchQueryBuilderboost
Class Methodboost(this: SearchQueryBuilder, num: number): SearchQueryBuilderBoosts the previous term to increase its rank in the results.
const query = new SearchQueryBuilder()
.match("Lakes")
.in("title")
.or()
.match("Rivers")
.in("title")
.boost(3)Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
num | number |
Returns
SearchQueryBuilderclone
Class Methodclone(): SearchQueryBuilderReturns a new instance of SearchQueryBuilder based on the current instance.
Returns
SearchQueryBuilderendGroup
Class MethodendGroup(this: SearchQueryBuilder): SearchQueryBuilderEnds a search group.
const query = new SearchQueryBuilder()
.startGroup()
.match("Lakes")
.in("title")
.endGroup()
.or()
.startGroup()
.match("Rivers")
.in("title")
.endGroup()Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
Returns
SearchQueryBuilderfrom
Class Methodfrom(this: SearchQueryBuilder, term: string | number | Date): SearchQueryBuilderBegins a new range query.
const NEWYEARS = new Date("2020-01-01")
const TODAY = new Date()
const query = new SearchQueryBuilder()
.from(NEWYEARS)
.to(TODAY)
.in("created")Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
term | string | number | Date |
Returns
SearchQueryBuilderin
Class Methodin(this: SearchQueryBuilder, field?: string): SearchQueryBuilderDefines fields to search in. You can pass "*" or call this method without arguments to search a default set of fields
const query = new SearchQueryBuilder()
.match("My Layer")
.in("title")Parameters
| Parameter | Type | Notes |
|---|---|---|
this | SearchQueryBuilder | |
field | string | The field to search for the previous match in. |
Returns
SearchQueryBuildermatch
Class Methodmatch(this: SearchQueryBuilder, terms: string[]): SearchQueryBuilderDefines strings to search for.
const query = new SearchQueryBuilder()
.match("My Layer")Parameters
| Parameter | Type | Notes |
|---|---|---|
this | SearchQueryBuilder | |
terms | string[] | strings to search for. |
Returns
SearchQueryBuildernot
Class Methodnot(this: SearchQueryBuilder): SearchQueryBuilderJoins two sets of queries with a NOT clause. Another option for filtering results is the prohibit operator '-'.
// omit results with "Rivers" in their title
const query = new SearchQueryBuilder()
.not()
.match("Rivers")
.in("title")
// equivalent
const query = new SearchQueryBuilder()
.match("Rivers")
.in("-title")Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
Returns
SearchQueryBuilderor
Class Methodor(this: SearchQueryBuilder): SearchQueryBuilderJoins two sets of queries with an OR clause.
const query = new SearchQueryBuilder()
.match("Lakes")
.in("title")
.or()
.match("Rivers")
.in("title")Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
Returns
SearchQueryBuilderstartGroup
Class MethodstartGroup(this: SearchQueryBuilder): SearchQueryBuilderStarts a new search group.
const query = new SearchQueryBuilder()
.startGroup()
.match("Lakes")
.in("title")
.endGroup()
.or()
.startGroup()
.match("Rivers")
.in("title")
.endGroup()Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
Returns
SearchQueryBuilderto
Class Methodto(this: SearchQueryBuilder, term: any): SearchQueryBuilderEnds a range query.
const query = new SearchQueryBuilder()
.from(yesterdaysDate)
.to(todaysDate)
.in("created")Parameters
| Parameter | Type |
|---|---|
this | SearchQueryBuilder |
term | any |
Returns
SearchQueryBuilder