array_to_tsvector ( text[] )
→ tsvector
文字列の配列をtsvectorに変換します。
与えられた文字列はそれ以上処理せずに語彙素としてそのまま使用されます。
配列要素は空文字列やNULLであってはなりません。
array_to_tsvector('{fat,cat,rat}'::text[])
→ 'cat' 'fat' 'rat'
|
get_current_ts_config ( )
→ regconfig
(default_text_search_configで設定された)現在のテキスト検索設定のOIDを返します。
get_current_ts_config()
→ english
|
length ( tsvector )
→ integer
tsvectorにある語彙素の数を返します。
length('fat:2,4 cat:3 rat:5A'::tsvector)
→ 3
|
numnode ( tsquery )
→ integer
tsqueryにある語彙素の数と演算子の数の和を返します。
numnode('(fat & rat) | cat'::tsquery)
→ 5
|
plainto_tsquery (
[ config regconfig, ]
query text )
→ tsquery
指定されたデフォルト設定にしたがって単語を正規化してテキストをtsqueryに変換します。
文字列中の句読点はすべて無視されます。(句読点は問い合わせ演算子を決定しません。)
結果の問い合わせはテキスト中の非ストップワードをすべて含む文書にマッチします。
plainto_tsquery('english', 'The Fat Rats')
→ 'fat' & 'rat'
|
phraseto_tsquery (
[ config regconfig, ]
query text )
→ tsquery
指定されたデフォルト設定にしたがって単語を正規化してテキストをtsqueryに変換します。
文字列中の句読点はすべて無視されます。(句読点は問い合わせ演算子を決定しません。)
結果の問い合わせはテキスト中の非ストップワードをすべて含む句にマッチします。
phraseto_tsquery('english', 'The Fat Rats')
→ 'fat' <-> 'rat'
phraseto_tsquery('english', 'The Cat and Rats')
→ 'cat' <2> 'rat'
|
websearch_to_tsquery (
[ config regconfig, ]
query text )
→ tsquery
指定されたデフォルト設定にしたがって単語を正規化してテキストをtsqueryに変換します。
引用符で囲まれた一連の語は句の検査に変換されます。
「or」はOR演算子を生成するものとして扱われ、ダッシュはNOT演算子として扱われます。
それ以外の句読点は無視されます。
これにより通常のweb検索ツールに近い振る舞いをします。
websearch_to_tsquery('english', '"fat rat" or cat dog')
→ 'fat' <-> 'rat' | 'cat' & 'dog'
|
querytree ( tsquery )
→ text
tsqueryのインデックス付可能な部分の表現を生成します。
空あるいはTはインデックス付できる部分が無い問い合わせであることを意味します。
querytree('foo & ! bar'::tsquery)
→ 'foo'
|
setweight ( vector tsvector, weight "char" )
→ tsvector
vectorの各要素に指定したweightを割り当てます。
setweight('fat:2,4 cat:3 rat:5B'::tsvector, 'A')
→ 'cat':3A 'fat':2A,4A 'rat':5A
|
setweight ( vector tsvector, weight "char", lexemes text[] )
→ tsvector
vectorの各要素にlexemesで列挙したweightを割り当てます。
語彙素の文字列は、処理されることなく、そのまま語彙素として扱われます。
ベクトルのどの語彙素にも一致しない文字列は無視されます。
setweight('fat:2,4 cat:3 rat:5,6B'::tsvector, 'A', '{cat,rat}')
→ 'cat':3A 'fat':2,4 'rat':5A,6A
|
strip ( tsvector )
→ tsvector
位置と重みをtsvectorから削除します。
strip('fat:2,4 cat:3 rat:5A'::tsvector)
→ 'cat' 'fat' 'rat'
|
to_tsquery (
[ config regconfig, ]
query text )
→ tsquery
指定されたデフォルト設定にしたがって単語を正規化してテキストをtsqueryに変換します。
単語は有効なtsquery演算子と組み合わされていなければなりません。
to_tsquery('english', 'The & Fat & Rats')
→ 'fat' & 'rat'
|
to_tsvector (
[ config regconfig, ]
document text )
→ tsvector
指定されたデフォルト設定にしたがって単語を正規化してテキストをtsvectorに変換します。
位置情報が結果に含まれます。
to_tsvector('english', 'The Fat Rats')
→ 'fat':2 'rat':3
|
to_tsvector (
[ config regconfig, ]
document json )
→ tsvector
to_tsvector (
[ config regconfig, ]
document jsonb )
→ tsvector
指定されたデフォルト設定にしたがって正規化してJSON文書中の文字列値をtsvectorに変換します。
そして結果は文書中の順序にしたがって結合されます。
位置情報は、あたかも文字列値の各々の対の間にストップワードが存在するかのように生成されます。
(入力がjsonbの場合、JSONオブジェクトのフィールドの「ドキュメント順」は実装依存であることに注意してください。例中の差異を見てください。)
to_tsvector('english', '{"aa": "The Fat Rats", "b": "dog"}'::json)
→ 'dog':5 'fat':2 'rat':3
to_tsvector('english', '{"aa": "The Fat Rats", "b": "dog"}'::jsonb)
→ 'dog':1 'fat':4 'rat':5
|
json_to_tsvector (
[ config regconfig, ]
document json,
filter jsonb )
→ tsvector
jsonb_to_tsvector (
[ config regconfig, ]
document jsonb,
filter jsonb )
→ tsvector
filterによって要求された項目をJSON文書から検索し、指定されたデフォルト設定にしたがって正規化してtsvectorに変換します。
そして結果は文書中の順序にしたがって結合されます。
位置情報は、あたかも文字列値の各々の対の間にストップワードが存在するかのように生成されます。
(入力がjsonbの場合、JSONオブジェクトのフィールドの「ドキュメント順」は実装依存であることに注意してください。例中の差異を見てください。)
filterは0個以上の以下のキーワードを含むjsonbの配列でなければなりません:
"string" (すべての文字列値を含めます)、"numeric" (すべての数値を含めます)、"boolean" (すべての論理値を含めます)、"key" (すべてのキーを含めます)、"all" (すべてを含めます)。
特別な場合として、filterはこれらのキーワードのどれかである単純なJSON値とすることもできます。
json_to_tsvector('english', '{"a": "The Fat Rats", "b": 123}'::json, '["string", "numeric"]')
→ '123':5 'fat':2 'rat':3
json_to_tsvector('english', '{"cat": "The Fat Rats", "dog": 123}'::json, '"all"')
→ '123':9 'cat':1 'dog':7 'fat':4 'rat':5
|
ts_delete ( vector tsvector, lexeme text )
→ tsvector
vectorから与えられたlexemeを削除します。
lexeme文字列は、それ以上の処理を行わずに、現状のままのlexemeとして扱われます。
ts_delete('fat:2,4 cat:3 rat:5A'::tsvector, 'fat')
→ 'cat':3 'rat':5A
|
ts_delete ( vector tsvector, lexemes text[] )
→ tsvector
vectorからlexemes中のすべての語彙素を削除します。
lexemes内の文字列は、それ以上の処理を行わずに、そのまま語彙素として扱われます。
vector内のどの語彙素とも一致しない文字列は無視されます。
ts_delete('fat:2,4 cat:3 rat:5A'::tsvector, ARRAY['fat','rat'])
→ 'cat':3
|
ts_filter ( vector tsvector, weights "char"[] )
→ tsvector
vectorからweightsを持つ要素だけを検索します。
ts_filter('fat:2,4 cat:3b,7c rat:5A'::tsvector, '{a,b}')
→ 'cat':3B 'rat':5A
|
ts_headline (
[ config regconfig, ]
document text,
query tsquery
[, options text ] )
→ text
document中のqueryにマッチするものを省略形で表示します。
documentはtsvectorではなくて生のテキストでなければなりません。
問い合わせのマッチ処理を行う前に、指定した、あるいはデフォルトの設定にしたがって単語が正規化されます。
12.3.4にこの関数の使い方が記述されています。可能なoptionsについても言及されています。
ts_headline('The fat cat ate the rat.', 'cat')
→ The fat <b>cat</b> ate the rat.
|
ts_headline (
[ config regconfig, ]
document json,
query tsquery
[, options text ] )
→ text
ts_headline (
[ config regconfig, ]
document jsonb,
query tsquery
[, options text ] )
→ text
JSON document中に出現する文字列値にqueryがマッチしたものを省略形で表示します。
詳細は12.3.4を見てください。
ts_headline('{"cat":"raining cats and dogs"}'::jsonb, 'cat')
→ {"cat": "raining <b>cats</b> and dogs"}
|
ts_rank (
[ weights real[], ]
vector tsvector,
query tsquery
[, normalization integer ] )
→ real
vectorがqueryにどれほどマッチするかのスコアを計算します。
詳細は12.3.3を見てください。
ts_rank(to_tsvector('raining cats and dogs'), 'cat')
→ 0.06079271
|
ts_rank_cd (
[ weights real[], ]
vector tsvector,
query tsquery
[, normalization integer ] )
→ real
被覆密度アルゴリズムを用いてvectorがqueryにどれほどマッチするかのスコアを計算します。
詳細は12.3.3を見てください。
ts_rank_cd(to_tsvector('raining cats and dogs'), 'cat')
→ 0.1
|
ts_rewrite ( query tsquery,
target tsquery,
substitute tsquery )
→ tsquery
query中に出現するtargetをsubstituteに置き換えます。
詳細は12.4.2.1を見てください。
ts_rewrite('a & b'::tsquery, 'a'::tsquery, 'foo|bar'::tsquery)
→ 'b' & ( 'foo' | 'bar' )
|
ts_rewrite ( query tsquery,
select text )
→ tsquery
SELECTを実行して取得したターゲットと代替を使用してqueryの一部を置き換えます。
詳細は12.4.2.1を見てください。
SELECT ts_rewrite('a & b'::tsquery, 'SELECT t,s FROM aliases')
→ 'b' & ( 'foo' | 'bar' )
|
tsquery_phrase ( query1 tsquery, query2 tsquery )
→ tsquery
連続する語彙素でquery1とquery2のマッチを検索する語句問い合わせを作成します。
(<->演算子と同じです。)
tsquery_phrase(to_tsquery('fat'), to_tsquery('cat'))
→ 'fat' <-> 'cat'
|
tsquery_phrase ( query1 tsquery, query2 tsquery, distance integer )
→ tsquery
語彙素が正確にdistanceだけ離れているquery1とquery2へのマッチを検索する語句問い合わせを作成します。
tsquery_phrase(to_tsquery('fat'), to_tsquery('cat'), 10)
→ 'fat' <10> 'cat'
|
tsvector_to_array ( tsvector )
→ text[]
tsvectorを語彙素の配列に変換します。
tsvector_to_array('fat:2,4 cat:3 rat:5A'::tsvector)
→ {cat,fat,rat}
|
unnest ( tsvector )
→ setof record
( lexeme text,
positions smallint[],
weights text )
1行につき1語彙素でtsvectorを行の集合に変換します。
select * from unnest('cat:3 fat:2,4 rat:5A'::tsvector)
→
lexeme | positions | weights
--------+-----------+---------
cat | {3} | {D}
fat | {2,4} | {D,D}
rat | {5} | {A}
|