Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info

Information valid from AMI version 8.0 initial release


Summary

Product Search uses Elasticsearch's Query String to perform free-text search, as this allows fine control over the search using a basic Query String Syntax.

The table below lists the aspects of the Simple Query String Syntax that are supported (see the Elasticsearch Query String Syntax document for full details).


Table of Contents
maxLevel2




Feature

Character

Example

Description

OR

canadian bacon
|

canadian

OR

bacon
canadian

|

| bacon

By default multi-term searches are

OR'd

ORed together - i.e. find matches that contain either the word canadian OR the word bacon (in any order or position)

AND

canadian AND bacon
+

canadian

&&

+ bacon

Use

the AND/&& keyword

if both terms are required (in any order or position)

NOT

-

canadian

AND

+ bacon

NOT

-film

Use

the NOT/!/- keywords

for words that must not be present

Preferred

Note that because multi-term searches are ORed, the example search would match values that either had canadian AND bacon OR did not have film.
To match with values that had canadian AND bacon AND NOT film, your query would have to be:
canadian + bacon

Use the

+

operator to specify that a term must be present - i.e the work bacon must be present, while th eword candian is optional (but will increase relevancy if it is present)

Grouping

canadian AND (bacon OR ham)

Multiple terms or clauses

-film

Phrases

" "

"canadian bacon"

Multiple words can be grouped together

with parentheses, to form sub-queries

Wildcards

qu?ck bro*

Wildcard searches can be run on individual terms, using ? to replace a single character, and * to replace zero or more characters

Regular Expressions

/joh?n(ath[oa]n)/

Regular expression patterns can be embedded in the query string by wrapping them in forward-slashes

Fuzziness

quikc~ brwn~ foks~You can use the boost operator (^) to make one term more relevant than another

to form a phrase for searching

Precedence( )(canadian american) + baconSignifies the precedence of matching operations

Prefix Search

*

canad*

* at the end of a word signifies a prefix query

Fuzziness

~N

brwn~2 foks~2

You can search for terms that are similar to, but not exactly like our search terms, using the “fuzzy” operator (~)

Boosting

quick^2 fox

A number after the ~ sets the edit distance—the maximum number of characters that may be added to, removed from or substituted in a word to make a match.
See Damerau–Levenshtein distance (Wikipedia) for more information.

Slop amount~N"canadian bacon"~2

After a phrase, the maximum number of intervening unmatched words allowed to still make a match.

In the example syntax, the query would match with:
canadian lean smoked bacon

You can match any of these characters literally by preceding them with a \ backslash.