@dotcms/client
Version:
Official JavaScript library for interacting with DotCMS REST APIs.
77 lines (76 loc) • 2.82 kB
TypeScript
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;
}