Documentation

Filter Query Language

Filter Query Language (next only FQL)is a query language that allows you to create more complex conditions to create specific product selections.
Inside FQL, you can create logical relationships, numeric and date ranges, lists or search text.
Let's introduce FQL!

Basic syntax in FQL

The cornerstone of an FQL query is a condition condition.

Podmínka se skládá ze dvou částí: pole:hodnota např.: znacka:adidas. Tento jednoduchý dotaz znamená to, že název značky musí být "adidas" (na velikosti písmen nezáleží).

Pokud chceme hledat víceslovný text, tak jej stačí uzavřít do uvozovek znacka:"adidas kids".

Porovnání může být samozřejmě proti číslu cena:99 (cena se rovná 99), datumu zprodejnen:"2020-05-24 14:30:59" (produkt byl zprodejněn 24. května 2020 v 14 hodin 30 minut a 59 vteřin) nebo pravdivostní hodnotě aktivni:false (produkt nesmí být aktivní).

Jednotlivé podmínky můžete slučovat do logických celků "a zároveň" znacka:"adidas" AND cena:99 (značka produktu je "Adidas" a prodejní cena je rovna 99 Kč) či "a nebo" znacka:"adidas" OR cena:99 (značka produktu je "Adidas" nebo prodejní cena je rovna 99 Kč).

Jednotlivé podmínky můžete negovat (obrátit význam) NOT znacka:"adidas" (značka nesmí být "Adidas"). Případně lze negovat celé logické celky NOT (znacka:"adidas" AND cena:99) (značka nesmí být "Adidas" a zároveň cena nesmí být 99 Kč).

Více podmínek nad stejným polem můžete sloučit do kratšího formátu. Např. tento FQL znacka:"*adidas*" OR znacka:"*nike*" je ekvivalentní s tímto FQL znacka:("*adidas*" OR "*nike*") (značka obsahuje "Adidas" nebo "Nike").

Text search

Searching whether the text contains, starts with, ends with, etc.

Značka se rovná hodnotě "Adidas Kids": znacka:"adidas kids"

Značka začíná na "Adi": znacka:"adi*"

Značka končí na "das": znacka:"*das"

Značka obsahuje "kid": znacka:"*kid*"

We can negate each condition by using an operator NOT.

Značka se nerovná hodnotě "Adidas Kids": NOT znacka:"adidas kids"

Značka nezačíná na "Adi": NOT znacka:"adi*"

Značka nekončí na "das": NOT znacka:"*das"

Značka neobsahuje "kid": NOT znacka:"*kid*"

Numerical search

Finding if a value is smaller, bigger or equal to, etc.

Cena se rovná 99: cena:99

Cena je menší než 99: cena:[* TO 99}

Cena je menší nebo rovno 99: cena:[* TO 99]

Cena je větší než 99: cena:{99 TO *]

Cena je větší nebo rovno 99: cena:[99 TO *]

Cena je větší než 29 a menší něž 99: cena:{29 TO 99}

Cena je větší než 29 a menší nebo rovna 99: cena:{29 TO 99]

Cena je větší nebo rovna 29 a menší nebo rovna 99: cena:[29 TO 99]

We can negate each condition by using an operator NOT.

Date-based searching

Finding if a date is older, newer or recent.

Zprodejněn dne 24. května 2020 14:30:59: zprodejnen:"2020-05-24 14:30:59"

Zprodejněn do 24. května 2020: zprodejnen:[* TO "2020-05-24 00:00:00"}

Zprodejněn do (včetně) 24. května 2020: zprodejnen:[* TO "2020-05-25 00:00:00"}

Zprodejněn od 24. května 2020: zprodejnen:{"2020-05-24 23:59:59" TO *]

Zprodejněn od (včetně) 24. května 2020: zprodejnen:["2020-05-24 00:00:00" TO *]

Zprodejněn od než 24. května 2020 do (včetně) 24. června 2020: zprodejnen:{"2020-05-24 23:59:59" TO "2020-06-25 00:00:00"}

We can negate each condition by using an operator NOT.

List search

Individual values inside the list are separated wit a semicolon ";".

ID je uvnitř výčtu ABC01, ABC02, ABC03: id:("ABC01;ABC02;ABC03")

Pokud některá z hodnot našeho výčtu obsahuje středník ";", pak je potřeba tento středník escapovat. Pokud náš seznam obsahuje hodnoty např. "01;ABC", "02ABC" a "03;ABC", pak bude náš seznam v FQL vypadat takto: id:("01\;ABC;02ABC;03\;ABC")

We can negate each condition using by an operator NOT.

Regexp search

Search in the value of aregular expression. The search is performed with the flag "insensitive" (is not case sensitive).

Značka začíná na "Adidas": znacka:"~^adidas~"

Značka končí na "Kids": znacka:"~kids$~"

Značka obsahuje pouze písmena (ASCII): znacka:"~^[a-z]+$~"

Značka obsahuje pouze písmena (UTF-8): znacka:"~^\p{L}+$~"

Značka obsahuje pouze číslice: znacka:"~^[0-9]+$~"

We can negate each condition using by an operator NOT.

If you didn't find what you were looking for in the documentation, don't hesitate to contact us (e.g. via the chat window).
We'll be happy to advise you and complete the documentation. :)