General flow of a faceted search query

When processing a faceted search query, the Public Content API performs a number of actions before, during and after running the query, based on how the query is specified.

A search query works as follows:
Preprocessing
GraphQL performs the following preprocessing on the udp-concept OpenSearch concept index:
  • If you supply schemeTitle but no connectorId in the input concept, Content Delivery tries to resolve the connector ID based on the schemeTitle and language values provided.
  • If you supply connectorId and schemeTitle, GraphQL throws an error.
  • If you supply connectorId and language, but not conceptLabels, then GraphQL ignores the value of the language setting. If you provide all three, GraphQL uses the language specified.
Processing
GraphQL always executes a query to the OpenSearch search index, udp-index and will match all if there are no criteria. Then for the result set, API calculates the aggregations for each defined facet filter. At this point, GraphQL only interacts with udp-index.
Postprocessing
GraphQL queries the udp-concept index to fill ConceptFacet details, and concepts in the search result.
For ConceptFacet details, GraphQL uses the specified language, or the fallback default language if no language is specified, in the response.
For concepts, GraphQL uses the locale specified for the search result, or the default language of the concept scheme if no locale is specified, in the response.