alfresco-ng2-components/docs/content-services/search-query-builder.service.md

2.8 KiB

Title, Added, Status, Last reviewed
Title Added Status Last reviewed
Search Query Builder service v2.3.0 Active 2018-06-12

Search Query Builder service

Stores information from all the custom search and faceted search widgets, compiles and runs the final search query.

Class members

Methods

  • addFilterQuery(query: string)

    • query: string -
  • addUserFacetBucket(field: FacetField, bucket: FacetFieldBucket)

    • field: FacetField -
    • bucket: FacetFieldBucket -
  • addUserFacetQuery(query: FacetQuery)

    • query: FacetQuery -
  • buildQuery(): QueryBody

    • Returns QueryBody -
  • execute(): Promise<void>

  • getFacetField(label: string): FacetField

    • label: string -
    • Returns FacetField -
  • getFacetQuery(label: string): FacetQuery

    • label: string -
    • Returns FacetQuery -
  • getPrimarySorting(): SearchSortingDefinition
    Returns primary sorting definition.

    • Returns SearchSortingDefinition -
  • getSortingOptions(): SearchSortingDefinition[]
    Returns all pre-configured sorting options that users can choose from.

    • Returns SearchSortingDefinition[] -
  • removeFilterQuery(query: string)

    • query: string -
  • removeUserFacetBucket(field: FacetField, bucket: FacetFieldBucket)

    • field: FacetField -
    • bucket: FacetFieldBucket -
  • removeUserFacetQuery(query: FacetQuery)

    • query: FacetQuery -
  • resetToDefaults()

  • update()

Details

See the Search filter component page for full details about the format of queries, facet fields, and sorting options.

The Query Builder is UI agnostic and does not rely on Angular components. You can reuse it with multiple component implementations.

You can use custom widgets to populate and edit the following parts of the resulting query:

  • categories
  • query fragments that form a query expression
  • include fields
  • scope settings
  • filter queries
  • facet fields
  • range queries
constructor(queryBuilder: SearchQueryBuilderService) {

    queryBuilder.updated.subscribe(query => {
        this.queryBuilder.execute();
    });

    queryBuilder.executed.subscribe(data => {
        this.onDataLoaded(data);
    });

}

See also