ODS - Search Filter
Query language
Attribute filter
Query to search items based on a value of an attribute. Filter consists of 3 parts, separated by a dot:
Syntax: {attribute}.{comparer}.{value}.
Attribute: attribute to filter on, this attribute has to be in elastic.
Comparer: Currently supports: 'equal' (eq), 'in' for ranges and 'startswith' for strings. It is also possible to filter on greater or lower then (or equal) with the ranges comparer.
Value: value to filter on. Supports All and Any for multiple values.
It is possible to link multiple filters together with the separator '/'.
Free text filter
Filter also supports free text search. With this, it is possible to search inside predefined fields for certain words of pieces of words, depending on the used configuration.
Syntax: search(free text)
Prefilter
Similar to filter but not visually exposed to the user
Combining filters
It is possible to link multiple filters together with the separator '/', which behaves as a AND operator.
Examples
Attribute filter
Equal
"Filter": "id.eq.abc"
"Filter": "id.eq.any(abc,xyz)"
"Filter": "options.eq.all(a,b)"
Within ranges
"Filter": "price.in(0-100)"
"Filter": "price.in(-25)"
"Filter": "price.in(25-)"
"Filter": "price.in.any(0-100,500-1000)"
"Filter": "price.in.all(0-100,500-1000)"
Starts with
"Filter": "name.startswith.abc"
"Filter": "name.startswith.any(abc,xyz)"
"Filter": "name.startswith.all(abc,xyz)"
Free text filter
"Filter": "search(fantastic)"
"Filter": "search(fanta)"
Prefilter
"Filter": "
status.eq.RN"
Combining filters
"Filter": "name.startswith.abc/brand.eq.xyz/price.in.any(0-100,500-1000)"