Funkce vyhledávání frází je integrována do dat textového vyhledávání typ tsquery
. operátor textového vyhledávání @@
váš displej zabírá tsvector
vlevo a tsquery
doprava. A tsvector
lze sestavit z libovolného typu znaků i z dokumentu JSON.
Související:
Svůj json
můžete převést nebo jsonb
dokument do vektoru textového vyhledávání s jedním z vyhrazených funkce
:
to_tsvector()
json(b)_to_tsvector()
Upozorňujeme, že tyto zahrnují pouze hodnoty z dokumentu JSON, nikoli z klíčů . Obvykle to je to, co chcete. Základní příklad:
SELECT to_tsvector(jsonb '{"foo":"jump quickly"}')
@@ to_tsquery('jump <-> quick:*');
Ukázka shody prefixů v horní části vyhledávání frází. Viz:
Alternativně , můžete jednoduše vytvořit tsvector
z text
reprezentaci vašeho dokumentu JSON tak, aby zahrnoval také názvy klíčů:
SELECT to_tsvector((jsonb '{"foo-fighter":"jump quickly"}')::text)
@@ to_tsquery('foo <-> fight:*');
Vytváří větší tsvector
, samozřejmě.
Oba lze indexovat (což je hlavní bod textového vyhledávání). Pouze indexy jsou vázány na relační tabulky. (A můžete indexovat výraz
!)
Samotný výraz lze použít na libovolnou hodnotu, není vázán na tabulky, jak se zdá naznačovat.