2007-08-21 03:11:32 +02:00
|
|
|
--Base tsvector test
|
|
|
|
SELECT '1'::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1 '::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ' 1'::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ' 1 '::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1 2'::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------
|
|
|
|
'1' '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '''1 2'''::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------
|
|
|
|
'1 2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT E'''1 \\''2'''::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------
|
|
|
|
'1 ''2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT E'''1 \\''2''3'::tsvector;
|
|
|
|
tsvector
|
|
|
|
-------------
|
2008-05-16 18:31:02 +02:00
|
|
|
'1 ''2' '3'
|
2007-08-21 03:11:32 +02:00
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT E'''1 \\''2'' 3'::tsvector;
|
|
|
|
tsvector
|
|
|
|
-------------
|
2008-05-16 18:31:02 +02:00
|
|
|
'1 ''2' '3'
|
2007-08-21 03:11:32 +02:00
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT E'''1 \\''2'' '' 3'' 4 '::tsvector;
|
|
|
|
tsvector
|
|
|
|
------------------
|
2008-05-16 18:31:02 +02:00
|
|
|
' 3' '1 ''2' '4'
|
2007-08-21 03:11:32 +02:00
|
|
|
(1 row)
|
|
|
|
|
2007-11-16 16:05:59 +01:00
|
|
|
SELECT $$'\\as' ab\c ab\\c AB\\\c ab\\\\c$$::tsvector;
|
|
|
|
tsvector
|
|
|
|
----------------------------------------
|
2008-05-16 18:31:02 +02:00
|
|
|
'AB\\c' '\\as' 'ab\\\\c' 'ab\\c' 'abc'
|
2007-11-16 16:05:59 +01:00
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT tsvectorin(tsvectorout($$'\\as' ab\c ab\\c AB\\\c ab\\\\c$$::tsvector));
|
|
|
|
tsvectorin
|
|
|
|
----------------------------------------
|
2008-05-16 18:31:02 +02:00
|
|
|
'AB\\c' '\\as' 'ab\\\\c' 'ab\\c' 'abc'
|
2007-11-16 16:05:59 +01:00
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT '''w'':4A,3B,2C,1D,5 a:8';
|
2007-08-21 03:11:32 +02:00
|
|
|
?column?
|
|
|
|
-----------------------
|
|
|
|
'w':4A,3B,2C,1D,5 a:8
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a:3A b:2a'::tsvector || 'ba:1234 a:1B';
|
2007-08-21 03:11:32 +02:00
|
|
|
?column?
|
|
|
|
----------------------------
|
|
|
|
'a':3A,4B 'b':2A 'ba':1237
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
--Base tsquery test
|
|
|
|
SELECT '1'::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1 '::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ' 1'::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ' 1 '::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '''1 2'''::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
'1 2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT E'''1 \\''2'''::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
'1 ''2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!1'::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
!'1'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------
|
|
|
|
'1' | '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|!2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------
|
|
|
|
'1' | !'2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!1|2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------
|
|
|
|
!'1' | '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!1|!2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-------------
|
|
|
|
!'1' | !'2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(!1|!2)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------
|
|
|
|
!( !'1' | !'2' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(!1|2)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------
|
|
|
|
!( !'1' | '2' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(1|!2)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------
|
|
|
|
!( '1' | !'2' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(1|2)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------
|
|
|
|
!( '1' | '2' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1&2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------
|
|
|
|
'1' & '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!1&2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------
|
|
|
|
!'1' & '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1&!2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------
|
|
|
|
'1' & !'2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!1&!2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-------------
|
|
|
|
!'1' & !'2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(1&2)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------
|
|
|
|
'1' & '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1&(2)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------
|
|
|
|
'1' & '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(1)&2'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------
|
|
|
|
!'1' & '2'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(1&2)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------
|
|
|
|
!( '1' & '2' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|2&3'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------
|
|
|
|
'1' | '2' & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|(2&3)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------
|
|
|
|
'1' | '2' & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(1|2)&3'::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------------------
|
|
|
|
( '1' | '2' ) & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|2&!3'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------
|
|
|
|
'1' | '2' & !'3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|!2&3'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------
|
|
|
|
'1' | !'2' & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!1|2&3'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------
|
|
|
|
!'1' | '2' & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!1|(2&3)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------
|
|
|
|
!'1' | '2' & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(1|2)&3'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------------
|
|
|
|
!( '1' | '2' ) & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(!1|2)&3'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------------
|
|
|
|
( !'1' | '2' ) & '3'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|(2|(4|(5|6)))'::tsquery;
|
2016-04-07 17:44:18 +02:00
|
|
|
tsquery
|
|
|
|
-----------------------------
|
|
|
|
'1' | '2' | '4' | '5' | '6'
|
2007-08-21 03:11:32 +02:00
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1|2|4|5|6'::tsquery;
|
2016-04-07 17:44:18 +02:00
|
|
|
tsquery
|
|
|
|
-----------------------------
|
|
|
|
'1' | '2' | '4' | '5' | '6'
|
2007-08-21 03:11:32 +02:00
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1&(2&(4&(5&6)))'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------------------
|
|
|
|
'1' & '2' & '4' & '5' & '6'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1&2&4&5&6'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------------------
|
|
|
|
'1' & '2' & '4' & '5' & '6'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1&(2&(4&(5|6)))'::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------------------------------
|
|
|
|
'1' & '2' & '4' & ( '5' | '6' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '1&(2&(4&(5|!6)))'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------------------------
|
|
|
|
'1' & '2' & '4' & ( '5' | !'6' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT E'1&(''2''&('' 4''&(\\|5 | ''6 \\'' !|&'')))'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------------------------------
|
|
|
|
'1' & '2' & ' 4' & ( '|5' | '6 '' !|&' )
|
|
|
|
(1 row)
|
|
|
|
|
2007-11-16 16:05:59 +01:00
|
|
|
SELECT $$'\\as'$$::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------
|
|
|
|
'\\as'
|
|
|
|
(1 row)
|
|
|
|
|
2008-05-16 18:31:02 +02:00
|
|
|
SELECT 'a:* & nbb:*ac | doo:a* | goo'::tsquery;
|
2016-04-07 17:44:18 +02:00
|
|
|
tsquery
|
|
|
|
--------------------------------------
|
|
|
|
'a':* & 'nbb':*AC | 'doo':*A | 'goo'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
-- phrase transformation
|
|
|
|
SELECT 'a <-> (b|c)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------------------------
|
|
|
|
'a' <-> 'b' | 'a' <-> 'c'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(a|b) <-> c'::tsquery;
|
|
|
|
tsquery
|
|
|
|
---------------------------
|
|
|
|
'a' <-> 'c' | 'b' <-> 'c'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(a|b) <-> (d|c)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-------------------------------------------------------
|
|
|
|
'a' <-> 'd' | 'b' <-> 'd' | 'a' <-> 'c' | 'b' <-> 'c'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a <-> (b&c)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------------------------
|
|
|
|
( 'a' <-> 'b' ) & ( 'a' <-> 'c' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(a&b) <-> c'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------------------------
|
|
|
|
( 'a' <-> 'c' ) & ( 'b' <-> 'c' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(a&b) <-> (d&c)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
( 'a' <-> 'd' ) & ( 'b' <-> 'd' ) & ( 'a' <-> 'c' ) & ( 'b' <-> 'c' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a <-> !b'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------------
|
|
|
|
'a' & !( 'a' <-> 'b' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!a <-> b'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------------
|
|
|
|
!( 'a' <-> 'b' ) & 'b'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!a <-> !b'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------------------------
|
|
|
|
!'a' & !( !( 'a' <-> 'b' ) & 'b' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a <-> !(b&c)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------------------------------------
|
|
|
|
'a' & !( ( 'a' <-> 'b' ) & ( 'a' <-> 'c' ) )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a <-> !(b|c)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
--------------------------------------
|
|
|
|
'a' & !( 'a' <-> 'b' | 'a' <-> 'c' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(a&b) <-> c'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------------------------------------
|
|
|
|
!( ( 'a' <-> 'c' ) & ( 'b' <-> 'c' ) ) & 'c'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!(a|b) <-> c'::tsquery;
|
|
|
|
tsquery
|
|
|
|
--------------------------------------
|
|
|
|
!( 'a' <-> 'c' | 'b' <-> 'c' ) & 'c'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(!a|b) <-> c'::tsquery;
|
|
|
|
tsquery
|
|
|
|
--------------------------------------
|
|
|
|
!( 'a' <-> 'c' ) & 'c' | 'b' <-> 'c'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(!a&b) <-> c'::tsquery;
|
2008-05-16 18:31:02 +02:00
|
|
|
tsquery
|
|
|
|
------------------------------------------
|
2016-04-07 17:44:18 +02:00
|
|
|
!( 'a' <-> 'c' ) & 'c' & ( 'b' <-> 'c' )
|
2008-05-16 18:31:02 +02:00
|
|
|
(1 row)
|
|
|
|
|
2016-04-07 17:44:18 +02:00
|
|
|
SELECT 'c <-> (!a|b)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
--------------------------------------
|
|
|
|
'c' & !( 'c' <-> 'a' ) | 'c' <-> 'b'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'c <-> (!a&b)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------------------------------
|
|
|
|
'c' & !( 'c' <-> 'a' ) & ( 'c' <-> 'b' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(a|b) <-> !c'::tsquery;
|
|
|
|
tsquery
|
|
|
|
------------------------------------------------
|
|
|
|
( 'a' | 'b' ) & !( 'a' <-> 'c' | 'b' <-> 'c' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '(a&b) <-> !c'::tsquery;
|
|
|
|
tsquery
|
|
|
|
----------------------------------------------------
|
|
|
|
'a' & 'b' & !( ( 'a' <-> 'c' ) & ( 'b' <-> 'c' ) )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!c <-> (a|b)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-------------------------------------------------
|
|
|
|
!( 'c' <-> 'a' ) & 'a' | !( 'c' <-> 'b' ) & 'b'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT '!c <-> (a&b)'::tsquery;
|
|
|
|
tsquery
|
|
|
|
-------------------------------------------------
|
|
|
|
!( 'c' <-> 'a' ) & 'a' & !( 'c' <-> 'b' ) & 'b'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
--comparisons
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a' < 'b & c'::tsquery as "true";
|
2007-08-21 03:11:32 +02:00
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a' > 'b & c'::tsquery as "false";
|
2007-08-21 03:11:32 +02:00
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
2016-04-07 17:44:18 +02:00
|
|
|
SELECT 'a | f' < 'b & c'::tsquery as "false";
|
|
|
|
false
|
|
|
|
-------
|
2016-04-08 19:11:30 +02:00
|
|
|
t
|
2007-08-21 03:11:32 +02:00
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a | ff' < 'b & c'::tsquery as "false";
|
2007-08-21 03:11:32 +02:00
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a | f | g' < 'b & c'::tsquery as "false";
|
2007-08-21 03:11:32 +02:00
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
2016-04-07 17:44:18 +02:00
|
|
|
--concatenation
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT numnode( 'new'::tsquery );
|
2007-08-21 03:11:32 +02:00
|
|
|
numnode
|
|
|
|
---------
|
|
|
|
1
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT numnode( 'new & york'::tsquery );
|
2007-08-21 03:11:32 +02:00
|
|
|
numnode
|
|
|
|
---------
|
|
|
|
3
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT numnode( 'new & york | qwery'::tsquery );
|
2007-08-21 03:11:32 +02:00
|
|
|
numnode
|
|
|
|
---------
|
|
|
|
5
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'foo & bar'::tsquery && 'asd';
|
2007-08-21 03:11:32 +02:00
|
|
|
?column?
|
|
|
|
-----------------------
|
|
|
|
'foo' & 'bar' & 'asd'
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'foo & bar'::tsquery || 'asd & fg';
|
2007-08-21 03:11:32 +02:00
|
|
|
?column?
|
|
|
|
------------------------------
|
|
|
|
'foo' & 'bar' | 'asd' & 'fg'
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'foo & bar'::tsquery || !!'asd & fg'::tsquery;
|
2007-08-21 03:11:32 +02:00
|
|
|
?column?
|
|
|
|
-----------------------------------
|
|
|
|
'foo' & 'bar' | !( 'asd' & 'fg' )
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'foo & bar'::tsquery && 'asd | fg';
|
2007-08-21 03:11:32 +02:00
|
|
|
?column?
|
|
|
|
----------------------------------
|
|
|
|
'foo' & 'bar' & ( 'asd' | 'fg' )
|
|
|
|
(1 row)
|
|
|
|
|
2016-04-07 17:44:18 +02:00
|
|
|
SELECT 'a' <-> 'b & d'::tsquery;
|
|
|
|
?column?
|
|
|
|
-----------------------------------
|
|
|
|
( 'a' <-> 'b' ) & ( 'a' <-> 'd' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a & g' <-> 'b & d'::tsquery;
|
|
|
|
?column?
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
( 'a' <-> 'b' ) & ( 'g' <-> 'b' ) & ( 'a' <-> 'd' ) & ( 'g' <-> 'd' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a & g' <-> 'b | d'::tsquery;
|
|
|
|
?column?
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
( 'a' <-> 'b' ) & ( 'g' <-> 'b' ) | ( 'a' <-> 'd' ) & ( 'g' <-> 'd' )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a & g' <-> 'b <-> d'::tsquery;
|
|
|
|
?column?
|
|
|
|
-----------------------------------------------------------
|
|
|
|
( 'a' <-> ( 'b' <-> 'd' ) ) & ( 'g' <-> ( 'b' <-> 'd' ) )
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT tsquery_phrase('a <3> g', 'b & d', 10);
|
|
|
|
tsquery_phrase
|
|
|
|
-------------------------------------------------------------
|
|
|
|
( ( 'a' <3> 'g' ) <10> 'b' ) & ( ( 'a' <3> 'g' ) <10> 'd' )
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 03:11:32 +02:00
|
|
|
-- tsvector-tsquery operations
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a b:89 ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca' as "true";
|
2007-08-21 03:11:32 +02:00
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a b:89 ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:B' as "true";
|
2007-08-21 03:11:32 +02:00
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a b:89 ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:A' as "true";
|
2007-08-21 03:11:32 +02:00
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a b:89 ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:C' as "false";
|
2007-08-21 03:11:32 +02:00
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT 'a b:89 ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:CB' as "true";
|
2007-08-21 03:11:32 +02:00
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
2008-05-16 18:31:02 +02:00
|
|
|
SELECT 'a b:89 ca:23A,64b d:34c'::tsvector @@ 'd:AC & c:*C' as "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a b:89 ca:23A,64b d:34c'::tsvector @@ 'd:AC & c:*CB' as "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a b:89 ca:23A,64b cb:80c d:34c'::tsvector @@ 'd:AC & c:*C' as "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a b:89 ca:23A,64c cb:80b d:34c'::tsvector @@ 'd:AC & c:*C' as "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a b:89 ca:23A,64c cb:80b d:34c'::tsvector @@ 'd:AC & c:*B' as "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'supernova'::tsvector @@ 'super'::tsquery AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'supeanova supernova'::tsvector @@ 'super'::tsquery AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'supeznova supernova'::tsvector @@ 'super'::tsquery AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'supernova'::tsvector @@ 'super:*'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'supeanova supernova'::tsvector @@ 'super:*'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'supeznova supernova'::tsvector @@ 'super:*'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
2016-04-07 17:44:18 +02:00
|
|
|
--phrase search
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <-> 2' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <2> 2' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <-> 3' AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <2> 3' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 11 3') @@ '1 <-> 3' AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 11 3') @@ '1:* <-> 3' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 4') @@ '1 <-> 2 <-> 3' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 4') @@ '(1 <-> 2) <-> 3' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 4') @@ '1 <-> (2 <-> 3)' AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 3 4') @@ '1 <2> (2 <-> 3)' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 1 2 3 4') @@ '(1 <-> 2) <-> 3' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT to_tsvector('simple', '1 2 1 2 3 4') @@ '1 <-> 2 <-> 3' AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
--ranking
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank(' a:1 s:2C d g'::tsvector, 'a | s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank
|
|
|
|
-----------
|
|
|
|
0.0911891
|
|
|
|
(1 row)
|
|
|
|
|
2008-05-16 18:31:02 +02:00
|
|
|
SELECT ts_rank(' a:1 sa:2C d g'::tsvector, 'a | s');
|
|
|
|
ts_rank
|
|
|
|
-----------
|
|
|
|
0.0303964
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank(' a:1 sa:2C d g'::tsvector, 'a | s:*');
|
|
|
|
ts_rank
|
|
|
|
-----------
|
|
|
|
0.0911891
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank(' a:1 sa:2C d g'::tsvector, 'a | sa:*');
|
|
|
|
ts_rank
|
|
|
|
-----------
|
|
|
|
0.0911891
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank(' a:1 s:2B d g'::tsvector, 'a | s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank
|
|
|
|
----------
|
|
|
|
0.151982
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank(' a:1 s:2 d g'::tsvector, 'a | s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank
|
|
|
|
-----------
|
|
|
|
0.0607927
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank(' a:1 s:2C d g'::tsvector, 'a & s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank
|
|
|
|
----------
|
|
|
|
0.140153
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank(' a:1 s:2B d g'::tsvector, 'a & s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank
|
|
|
|
----------
|
|
|
|
0.198206
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank(' a:1 s:2 d g'::tsvector, 'a & s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank
|
|
|
|
-----------
|
|
|
|
0.0991032
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 s:2C d g'::tsvector, 'a | s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.3
|
|
|
|
(1 row)
|
|
|
|
|
2008-05-16 18:31:02 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 sa:2C d g'::tsvector, 'a | s');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 sa:2C d g'::tsvector, 'a | s:*');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 sa:2C d g'::tsvector, 'a | sa:*');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 sa:3C sab:2c d g'::tsvector, 'a | sa:*');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.5
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 s:2B d g'::tsvector, 'a | s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.5
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 s:2 d g'::tsvector, 'a | s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.2
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 s:2C d g'::tsvector, 'a & s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.133333
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 s:2B d g'::tsvector, 'a & s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.16
|
|
|
|
(1 row)
|
|
|
|
|
2007-08-21 17:41:13 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 s:2 d g'::tsvector, 'a & s');
|
2007-08-21 03:11:32 +02:00
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.1
|
|
|
|
(1 row)
|
|
|
|
|
2016-04-07 17:44:18 +02:00
|
|
|
SELECT ts_rank_cd(' a:1 s:2A d g'::tsvector, 'a <-> s');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.181818
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 s:2C d g'::tsvector, 'a <-> s');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.133333
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 s:2 d g'::tsvector, 'a <-> s');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 s:2 d:2A g'::tsvector, 'a <-> s');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 s:2,3A d:2A g'::tsvector, 'a <2> s:A');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.0909091
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 b:2 s:3A d:2A g'::tsvector, 'a <2> s:A');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.0909091
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 sa:2D sb:2A g'::tsvector, 'a <-> s:*');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 sa:2A sb:2D g'::tsvector, 'a <-> s:*');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.1
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 sa:2A sb:2D g'::tsvector, 'a <-> s:* <-> sa:A');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0.0714286
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT ts_rank_cd(' a:1 sa:2A sb:2D g'::tsvector, 'a <-> s:* <-> sa:B');
|
|
|
|
ts_rank_cd
|
|
|
|
------------
|
|
|
|
0
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:2'::tsvector @@ 'a <-> b'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:2'::tsvector @@ 'a <0> b'::tsquery AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:2'::tsvector @@ 'a <1> b'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:2'::tsvector @@ 'a <2> b'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:3'::tsvector @@ 'a <-> b'::tsquery AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:3'::tsvector @@ 'a <0> b'::tsquery AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:3'::tsvector @@ 'a <1> b'::tsquery AS "false";
|
|
|
|
false
|
|
|
|
-------
|
|
|
|
f
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:3'::tsvector @@ 'a <2> b'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT 'a:1 b:3'::tsvector @@ 'a <3> b'::tsquery AS "true";
|
|
|
|
true
|
|
|
|
------
|
|
|
|
t
|
|
|
|
(1 row)
|
|
|
|
|
2016-03-11 17:22:36 +01:00
|
|
|
-- tsvector editing operations
|
|
|
|
SELECT strip('w:12B w:13* w:12,5,6 a:1,3* a:3 w asd:1dc asd'::tsvector);
|
|
|
|
strip
|
|
|
|
---------------
|
|
|
|
'a' 'asd' 'w'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT strip('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
|
|
|
|
strip
|
|
|
|
----------------------------------------------
|
|
|
|
'base' 'hidden' 'rebel' 'spaceship' 'strike'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT strip('base hidden rebel spaceship strike'::tsvector);
|
|
|
|
strip
|
|
|
|
----------------------------------------------
|
|
|
|
'base' 'hidden' 'rebel' 'spaceship' 'strike'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete(to_tsvector('english', 'Rebel spaceships, striking from a hidden base'), 'spaceship');
|
|
|
|
delete
|
|
|
|
------------------------------------------
|
|
|
|
'base':7 'hidden':6 'rebel':1 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'base');
|
|
|
|
delete
|
|
|
|
--------------------------------------------------------------
|
|
|
|
'hidden':6 'rebel':1 'spaceship':2,33A,34B,35C,36 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'bas');
|
|
|
|
delete
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
'base':7 'hidden':6 'rebel':1 'spaceship':2,33A,34B,35C,36 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'bases');
|
|
|
|
delete
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
'base':7 'hidden':6 'rebel':1 'spaceship':2,33A,34B,35C,36 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'spaceship');
|
|
|
|
delete
|
|
|
|
------------------------------------------
|
|
|
|
'base':7 'hidden':6 'rebel':1 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base hidden rebel spaceship strike'::tsvector, 'spaceship');
|
|
|
|
delete
|
|
|
|
----------------------------------
|
|
|
|
'base' 'hidden' 'rebel' 'strike'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceship','rebel']);
|
|
|
|
delete
|
|
|
|
--------------------------------
|
|
|
|
'base':7 'hidden':6 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceships','rebel']);
|
|
|
|
delete
|
|
|
|
-------------------------------------------------------------
|
|
|
|
'base':7 'hidden':6 'spaceship':2,33A,34B,35C,36 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceshi','rebel']);
|
|
|
|
delete
|
|
|
|
-------------------------------------------------------------
|
|
|
|
'base':7 'hidden':6 'spaceship':2,33A,34B,35C,36 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceship','leya','rebel']);
|
|
|
|
delete
|
|
|
|
--------------------------------
|
|
|
|
'base':7 'hidden':6 'strike':3
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base hidden rebel spaceship strike'::tsvector, ARRAY['spaceship','leya','rebel']);
|
|
|
|
delete
|
|
|
|
--------------------------
|
|
|
|
'base' 'hidden' 'strike'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT delete('base hidden rebel spaceship strike'::tsvector, ARRAY['spaceship','leya','rebel', NULL]);
|
|
|
|
ERROR: lexeme array may not contain nulls
|
|
|
|
SELECT unnest('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
|
|
|
|
unnest
|
|
|
|
---------------------------------------------
|
|
|
|
(base,{7},{D})
|
|
|
|
(hidden,{6},{D})
|
|
|
|
(rebel,{1},{D})
|
|
|
|
(spaceship,"{2,33,34,35,36}","{D,A,B,C,D}")
|
|
|
|
(strike,{3},{D})
|
|
|
|
(5 rows)
|
|
|
|
|
|
|
|
SELECT unnest('base hidden rebel spaceship strike'::tsvector);
|
|
|
|
unnest
|
|
|
|
---------------
|
|
|
|
(base,,)
|
|
|
|
(hidden,,)
|
|
|
|
(rebel,,)
|
|
|
|
(spaceship,,)
|
|
|
|
(strike,,)
|
|
|
|
(5 rows)
|
|
|
|
|
|
|
|
SELECT * FROM unnest('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
|
|
|
|
lexeme | positions | weights
|
|
|
|
-----------+-----------------+-------------
|
|
|
|
base | {7} | {D}
|
|
|
|
hidden | {6} | {D}
|
|
|
|
rebel | {1} | {D}
|
|
|
|
spaceship | {2,33,34,35,36} | {D,A,B,C,D}
|
|
|
|
strike | {3} | {D}
|
|
|
|
(5 rows)
|
|
|
|
|
|
|
|
SELECT * FROM unnest('base hidden rebel spaceship strike'::tsvector);
|
|
|
|
lexeme | positions | weights
|
|
|
|
-----------+-----------+---------
|
|
|
|
base | |
|
|
|
|
hidden | |
|
|
|
|
rebel | |
|
|
|
|
spaceship | |
|
|
|
|
strike | |
|
|
|
|
(5 rows)
|
|
|
|
|
|
|
|
SELECT lexeme, positions[1] from unnest('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
|
|
|
|
lexeme | positions
|
|
|
|
-----------+-----------
|
|
|
|
base | 7
|
|
|
|
hidden | 6
|
|
|
|
rebel | 1
|
|
|
|
spaceship | 2
|
|
|
|
strike | 3
|
|
|
|
(5 rows)
|
|
|
|
|
|
|
|
SELECT tsvector_to_array('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
|
|
|
|
tsvector_to_array
|
|
|
|
--------------------------------------
|
|
|
|
{base,hidden,rebel,spaceship,strike}
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT tsvector_to_array('base hidden rebel spaceship strike'::tsvector);
|
|
|
|
tsvector_to_array
|
|
|
|
--------------------------------------
|
|
|
|
{base,hidden,rebel,spaceship,strike}
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT array_to_tsvector(ARRAY['base','hidden','rebel','spaceship','strike']);
|
|
|
|
array_to_tsvector
|
|
|
|
----------------------------------------------
|
|
|
|
'base' 'hidden' 'rebel' 'spaceship' 'strike'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT array_to_tsvector(ARRAY['base','hidden','rebel','spaceship', NULL]);
|
|
|
|
ERROR: lexeme array may not contain nulls
|
|
|
|
SELECT setweight('w:12B w:13* w:12,5,6 a:1,3* a:3 w asd:1dc asd zxc:81,567,222A'::tsvector, 'c');
|
|
|
|
setweight
|
|
|
|
----------------------------------------------------------
|
|
|
|
'a':1C,3C 'asd':1C 'w':5C,6C,12C,13C 'zxc':81C,222C,567C
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c');
|
|
|
|
setweight
|
|
|
|
----------------------------------------------------------
|
|
|
|
'a':1C,3C 'asd':1C 'w':5C,6C,12C,13C 'zxc':81C,222C,567C
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c', '{a}');
|
|
|
|
setweight
|
|
|
|
------------------------------------------------------
|
|
|
|
'a':1C,3C 'asd':1C 'w':5,6,12B,13A 'zxc':81,222A,567
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c', '{a}');
|
|
|
|
setweight
|
|
|
|
------------------------------------------------------
|
|
|
|
'a':1C,3C 'asd':1C 'w':5,6,12B,13A 'zxc':81,222A,567
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c', '{a,zxc}');
|
|
|
|
setweight
|
|
|
|
--------------------------------------------------------
|
|
|
|
'a':1C,3C 'asd':1C 'w':5,6,12B,13A 'zxc':81C,222C,567C
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT setweight('a asd w:5,6,12B,13A zxc'::tsvector, 'c', '{a,zxc}');
|
|
|
|
setweight
|
|
|
|
---------------------------------
|
|
|
|
'a' 'asd' 'w':5,6,12B,13A 'zxc'
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT setweight('a asd w:5,6,12B,13A zxc'::tsvector, 'c', ARRAY['a', 'zxc', NULL]);
|
|
|
|
ERROR: lexeme array may not contain nulls
|
|
|
|
SELECT filter('base:7A empir:17 evil:15 first:11 galact:16 hidden:6A rebel:1A spaceship:2A strike:3A victori:12 won:9'::tsvector, '{a}');
|
|
|
|
filter
|
|
|
|
-------------------------------------------------------------
|
|
|
|
'base':7A 'hidden':6A 'rebel':1A 'spaceship':2A 'strike':3A
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT filter('base hidden rebel spaceship strike'::tsvector, '{a}');
|
|
|
|
filter
|
|
|
|
--------
|
|
|
|
|
|
|
|
(1 row)
|
|
|
|
|
|
|
|
SELECT filter('base hidden rebel spaceship strike'::tsvector, '{a,b,NULL}');
|
|
|
|
ERROR: weight array may not contain nulls
|