Stop - Query Pipeline Feature

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

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 is defined in, to a global condition.

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

Syntax

Use the following QPL syntax to define a statement expressing the stop feature:

Syntax

stop <words>

Where:

  • <words> is a comma-separated list of quoted strings where each element defines a case-insensitive word that should be removed from the basic query expression (e.g., "foo", "bar", "baz").

    A given stop word instance will not be removed from the basic query expression when:

    • The condition associated to the statement is not 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).