The Query Processing Component, which sits between the Index Component and the search front-end client, handles processing when a user executes a search query and processes the results to be returned. When the Indexing Component— or another search provider—returns a result set, the Query Processing Component performs any additional processing that is required.
The Query Processing Component performs some linguistic processing to maximize query efficiency and effectiveness, such as:
- Word stemming. Stemming returns words closely related to or stemming from another word. For example, the stemmer relates words such as “jumping,” “jumped,” and “jumper” to the verb “to jump.”
- Word breaking. This refers to the breaking of words that are linked by some form of hyphenation; for example, the term “server-based“ is linked by a hyphen. In this case, word breaking returns both “server” and “based,” with higher relevance given to an item with both present
The query processing workflow is as follows:
- The Query Processing Component receives a query from the search front-end client and processes to maximize precision, recall, and relevancy. These actions include:
- Applying Web Part transformations.o Initiating query rules.
- Applying transformations on result sources.
- Parsing the query and creating a query syntax tree.
- Performing linguistic processing, such as word breaking, stemming, spelling checking, and thesaurus application.
- Appending user-access information.
- The processed query is then sent to the Indexing Component or external source.
- The result sets are returned from the Indexing Component. These are aggregated and are again processed to remove duplicates by:
- Evaluating the search results against result types.
- Applying any additional required security trimming.
- The processed results are then sent to the WFE, so that they can be rendered for the user.