UNPKG

@dotcms/client

Version:

Official JavaScript library for interacting with DotCMS REST APIs.

77 lines (76 loc) 2.82 kB
import { Equals, Field } from './lucene-syntax/index'; /** * 'QueryBuilder' Is a Typescript class that provides the ability to build a query string using the Lucene syntax in a more readable way. * @example * ```ts * const qb = new QueryBuilder(); * const query = qb * .field('contentType') * .equals('Blog') * .field('conhost') * .equals('my-super-cool-site') * .build(); // Output: `+contentType:Blog +conhost:my-super-cool-site"` * ``` * * @example * ```ts * const qb = new QueryBuilder(); * const query = qb * .field('contentType') * .equals('Blog') * .field('title') * .equals('Football') * .excludeField('summary') * .equals('Lionel Messi') * .build(); // Output: `+contentType:Blog +title:Football -summary:"Lionel Messi"` * ``` * @export * @class QueryBuilder */ export declare class QueryBuilder { #private; /** * This method appends to the query a field that should be included in the search. * * @example * ```ts * const qb = new QueryBuilder(); * qb.field("+myField: ", "myValue"); // Current query: "+myField: myValue" * ``` * * @param {string} field - The field that should be included in the search. * @return {*} {Field} - An instance of a Lucene Field. A field is a key used to search for a specific value in a document. * @memberof QueryBuilder */ field(field: string): Field; /** * This method appends to the query a field that should be excluded from the search. * * @example * ```ts * const qb = new QueryBuilder(); * qb.excludeField("myField").equals("myValue"); // Current query: "-myField: myValue" * ``` * * @param {string} field - The field that should be excluded from the search. * @return {*} {Field} - An instance of a Lucene Exclude Field. An exclude field is a key used to exclude for a specific value in a document. * @memberof QueryBuilder */ excludeField(field: string): Field; /** * This method allows to pass a raw query string to the query builder. * This raw query should end in Equals. * This method is useful when you want to append a complex query or an already written query to the query builder. * * @example * ```ts * const qb = new QueryBuilder(); * qb.raw("+myField: value AND (someOtherValue OR anotherValue)"); // Current query: "+myField: value AND (someOtherValue OR anotherValue)" * ``` * * @param {string} query - A raw query string. * @return {*} {Equals} - An instance of Equals. A term is a value used to search for a specific value in a document. * @memberof QueryBuilder */ raw(query: string): Equals; }