Title | Added | Status | Last reviewed |
---|---|---|---|
Search Query Builder service |
v2.3.0 |
Active |
2019-03-19 |
Stores information from all the custom search and faceted search widgets, compiles and runs the final search query.
-
addFilterQuery(query:
string
)
Adds a filter query to the current query.- query:
string
- Query string to add
- query:
-
addUserFacetBucket(field:
FacetField
, bucket:FacetFieldBucket
)
Adds a facet bucket to a field.- field:
FacetField
- The target field - bucket:
FacetFieldBucket
- Bucket to add
- field:
-
buildQuery():
QueryBody
Builds the current query.- Returns
QueryBody
- The finished query
- Returns
-
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
- label:
-
getFacetQuery(label:
string
):FacetQuery
Gets a facet query by label.- label:
string
- Label of the query - Returns
FacetQuery
- Facet query data
- label:
-
getPrimarySorting():
SearchSortingDefinition
Gets the primary sorting definition.- Returns
SearchSortingDefinition
- The primary sorting definition
- Returns
-
getQueryGroup(query:
any
):any
Gets the query group.- query:
any
- Target query - Returns
any
- Query group
- query:
-
getSortingOptions():
SearchSortingDefinition
[]
Gets all pre-configured sorting options that users can choose from.- Returns
SearchSortingDefinition
[]
- Pre-configured sorting options
- Returns
-
getSupportedLabel(configLabel:
string
):string
Encloses a label name with double quotes if it contains whitespace characters.- configLabel:
string
- Original label text - Returns
string
- Label, possibly with quotes if it contains spaces
- configLabel:
-
getUserFacetBuckets(field:
string
):FacetFieldBucket
[]
Gets the buckets currently added to a field- field:
string
- The target fields - Returns
FacetFieldBucket
[]
- Bucket array
- field:
-
isFilterServiceActive():
boolean
- Returns
boolean
-
- Returns
-
loadConfiguration():
SearchConfiguration
- Returns
SearchConfiguration
-
- Returns
-
removeFilterQuery(query:
string
)
Removes an existing filter query.- query:
string
- The query to remove
- query:
-
removeUserFacetBucket(field:
FacetField
, bucket:FacetFieldBucket
)
Removes an existing bucket from a field.- field:
FacetField
- The target field - bucket:
FacetFieldBucket
- Bucket to remove
- field:
-
resetToDefaults()
-
update()
Builds the current query and triggers theupdated
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 => {
this.queryBuilder.execute();
});
queryBuilder.executed.subscribe(data => {
this.onDataLoaded(data);
});
}
Note: From ADF 3.0.0, the query contains the
"facetFormat": "V2"
parameter so that all the responses have the same structure whether they come from search queries containing facetFields, facetQueries, grouped facetQueries or facetIntervals.