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

  • IParamBuilder

Constructors

  • Parameters

    • Optional q: string

      An existing query string to start building from.

    Returns SearchQueryBuilder

Properties

addModifier: any
cleanup: any
commit: any
currentModifer: any
formatTerm: any
needsQuotes: any
openGroups: any
q: any
rangeStack: any
termStack: any

Accessors

  • get hasRange(): any
  • Returns any

  • get hasTerms(): any
  • Returns any

Methods

  • Joins two sets of queries with an AND clause.

    const query = new SearchQueryBuilder()
    .match("Lakes")
    .in("title")
    .and()
    .match("Rivers")
    .in("title")

    Parameters

    Returns SearchQueryBuilder

  • Boosts 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

    Returns SearchQueryBuilder

  • Returns a new instance of SearchQueryBuilder based on the current instance.

    Returns SearchQueryBuilder

  • Ends a search group.

    const query = new SearchQueryBuilder()
    .startGroup()
    .match("Lakes")
    .in("title")
    .endGroup()
    .or()
    .startGroup()
    .match("Rivers")
    .in("title")
    .endGroup()

    Parameters

    Returns SearchQueryBuilder

  • Begins 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

    Returns SearchQueryBuilder

  • Defines 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

    • this: SearchQueryBuilder
    • Optional field: string

      The field to search for the previous match in.

    Returns SearchQueryBuilder

  • Defines strings to search for.

    const query = new SearchQueryBuilder()
    .match("My Layer")

    Parameters

    Returns SearchQueryBuilder

  • Joins 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

    Returns SearchQueryBuilder

  • Joins two sets of queries with an OR clause.

    const query = new SearchQueryBuilder()
    .match("Lakes")
    .in("title")
    .or()
    .match("Rivers")
    .in("title")

    Parameters

    Returns SearchQueryBuilder

  • Starts a new search group.

    const query = new SearchQueryBuilder()
    .startGroup()
    .match("Lakes")
    .in("title")
    .endGroup()
    .or()
    .startGroup()
    .match("Rivers")
    .in("title")
    .endGroup()

    Parameters

    Returns SearchQueryBuilder

  • Ends a range query.

    const query = new SearchQueryBuilder()
    .from(yesterdaysDate)
    .to(todaysDate)
    .in("created")

    Parameters

    Returns SearchQueryBuilder

  • Returns the current query string. Called internally when the request is made.

    Returns string