Podmínka psaná jako "contains" neumí reguláry

Ahoj,

když napíšu podmínku “obsahuje” - klasicky se znakem “~” dá se používat svislítko “|” jako znaménko OR. Když to ale vypíšu slovně, (nebo když dám jednoduchou podmínku, kliknu na “vlastní” a ona se mi textově přepíše funkcí Mergada) tak to nevezme a snaží se to najít asi jako znak.

[PRODUCTNAME] ~ “brooch|brošn” = nalezeno 51 produktů
ale
[PRODUCTNAME] CONTAINS “brooch|brošn” = výběr neexistuje
i když z principu jsem to považoval vždy za ten samý zápis (možná to tak není, kdyžtak to přesuňte na dotazy)

Petr

1 Like

Ahoj,
je to přesně jak píšeš a je to tak záměrně. Podmínku CONTAINS / NOT CONTAINS jsme do Mergada přidali proto, aby bylo možné prohledávat pomocí textového řetězce, aniž by se případné speciální znaky z toho řetězce vyhodnocovaly jako regulární výraz.

Dokud bylo v Mergadu možné vyhledávat jenom pomocí podmínky “obsahuje / neobsahuje regulární výraz”, tak se nedalo vyhledávat pomocí výrazů, které obsahovaly speciální znaky, které zároveň slouží jako regulární značky. Třeba když byl v CATEGORYTEXTU jako oddělovač úrovní jednotlivých kategorií použitý znak svislítka: | a vyhledávací text tohle svislítko obsahoval, hledání nefungovalo dobře, protože to je zároveň regulární značka pro “nebo”.

Malé shrnutí:

  • CONTAINS / NOT CONTAINS … pro vyhledávání, kdy se hledaný řetězec bere jako běžný text
  • ~ / !~ … pro vyhledávání, kdy se hledaný řetězec bere jako regulární výraz
4 Likes

Nějak jsem zapomněl odpovědět, ale info se ke mně dostalo. A tohle jsem nevěděl a upřímně vždy používal “~” a pak nervil právě u Heureka kategorií :smiley:

Díky za info :slight_smile:

P.

2 Likes