Stop: Query pipeline feature

In this article

A query pipeline statement expressing the stop feature defines a list of case-insensitive words to remove from the basic query expression (q) before executing a query against the index.

Tip
Leading practice

Typically, a statement expressing the stop feature should only apply when a certain condition is fulfilled.

In general, you should ensure that this is the case by associating such a statement, and/or the query pipeline it’s defined in, to a global condition.

See Leading practices for more recommendations and tips on managing stop word rules.

Notes

The following diagram shows the process of a query being sent to the Search API and the order of execution of query pipeline features.

Apply stop statements

Syntax

Use the following query pipeline language (QPL) syntax to define a statement expressing the stop feature:

stop <words>

<words>

A comma-separated list of quoted strings, where each element defines a case-insensitive word that should be removed from the basic query expression (for example, "foo", "bar", "baz").

Important

A given stop word instance won’t be removed from the basic query expression when:

  • The condition associated to the statement isn’t fulfilled.

  • The stop word instance appears in an exact phrase match term in the current basic query expression.

  • The current basic query expression only contains stop words.

  • The stop word instance is acting as an operand of a Boolean query syntax operator in the current basic query expression.

Example

In an empty query pipeline named Testing Stop, you define a statement expressing the stop feature with the following QPL definition:

Statement:

stop "be", "do", "how", "i", "in", "my", "not", "or", "the", "to"

The following table shows how the basic query expression of different queries going through the Testing Stop query pipeline is processed when this statement applies:

Current q expression Processed q expression Explanation

to be or not to be

to be or not to be

Stop words are kept if the current q expression only contains stop words.

how do I change the "my password" value in the Intranet?

change "my password" value intranet

  • Stop words are case-insensitive (hence I is removed).

  • Stop word instances are kept in exact phrase match query terms (hence my is kept in "my password").

how NEAR:5 my password in the intranet

how NEAR:5 my password intranet

Stop words acting as query syntax Boolean operators are kept (hence how and my are kept).