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 Query String Syntax that are supported (see the Elasticsearch Query String Syntax document for full details).
Feature | Example | Description |
OR | canadian bacon | By default multi term searches are OR'd together - i.e find matches that contain either the word canadian OR the word bacon (in any order or position) |
AND | canadian AND bacon | Use if both terms are required (in any order or position) |
NOT | canadian AND bacon NOT film | Use for words that must not be present |
Preferred | canadian +bacon | Use to specify that a term must be present - i.e the work bacon must be present, while the word candian is optional (but will increase relevancy if it is present) |
Grouping | canadian AND (bacon OR ham) | Multiple terms or clauses 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 search for terms that are similar to, but not exactly like our search terms, using the “fuzzy” operator (~) |
Boosting | quick^2 fox | You can use the boost operator (^) to make one term more relevant than another |