Welcome to the Alfresco Builder Network

Our technical resource site is still being improved. We'd love to hear your feedback. Tell us what you think

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

Class members


  • addFilterQuery(query: string)
    Adds a filter query to the current query.
    • query: string - Query string to add
  • addUserFacetBucket(field: FacetField, bucket: FacetFieldBucket)
    Adds a facet bucket to a field.
  • buildQuery(): QueryBody
    Builds the current query.
    • Returns QueryBody - The finished query
  • execute()
    Builds and executes the current query.
  • getFacetField(label: string): FacetField
    Gets a facet field by label.
    • label: string - Label of the facet field
    • Returns FacetField - Facet field data
  • getFacetQuery(label: string): FacetQuery
    Gets a facet query by label.
    • label: string - Label of the query
    • Returns FacetQuery - Facet query data
  • getPrimarySorting(): SearchSortingDefinition
    Gets the primary sorting definition.
  • getQueryGroup(query: any): any
    Gets the query group.
    • query: any - Target query
    • Returns any - Query group
  • getSortingOptions(): SearchSortingDefinition[]
    Gets all pre-configured sorting options that users can choose from.
  • getUserFacetBuckets(field: string): FacetFieldBucket[]
    Gets the buckets currently added to a field
  • removeFilterQuery(query: string)
    Removes an existing filter query.
    • query: string - The query to remove
  • removeUserFacetBucket(field: FacetField, bucket: FacetFieldBucket)
    Removes an existing bucket from a field.
  • resetToDefaults()
    Resets the query to the defaults specified in the app config.
  • update()
    Builds the current query and triggers the updated event.


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 => {

    queryBuilder.executed.subscribe(data => {


Note: Since ADF 3.0.0, the query contains the "facetFormat": "V2" parameter so that all the responses have the same structure even if coming from search queries containing facetFields, facetQueries, grouped facetQueries or facetIntervals.

See also

Interested in trying Alfresco?

Try Now