Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni e operatori per ricerca testo
PrecedenteFunzioni e operatori per indirizzi di reteFunzioni XMLSuccessivo

9.13. Funzioni e operatori per ricerca testo

Le tabelle Tabella 9.36, «Operatori per ricerca di testo», Tabella 9.37, «Funzioni per ricerca di testo» e Tabella 9.38, «Funzioni per il debug di ricerca testo» riassumono le funzioni e gli operatori che sono forniti per ricerche full-text. Consultare Capitolo 12, Full Text Search per una spiegazione dettagliata della capacità di PostgreSQL™ per le ricerche di testo.

Tabella 9.36. Operatori per ricerca di testo

OperatoreDescrizioneEsempioRisultato
@@ tsvector corrisponde a tsquery ?to_tsvector('fat cats ate rats') @@ to_tsquery('cat & rat')t
@@@ sinonimo deprecato di @@to_tsvector('fat cats ate rats') @@@ to_tsquery('cat & rat')t
|| concatena tsvector'a:1 b:2'::tsvector || 'c:1 d:2 b:3'::tsvector'a':1 'b':2,5 'c':3 'd':4
&& AND di tsquery'fat | rat'::tsquery && 'cat'::tsquery( 'fat' | 'rat' ) & 'cat'
|| OR di tsquery'fat | rat'::tsquery || 'cat'::tsquery( 'fat' | 'rat' ) | 'cat'
!! nega un tsquery!! 'cat'::tsquery!'cat'
@> un tsquery ne contiene un altro?'cat'::tsquery @> 'cat & rat'::tsqueryf
<@ un tsquery è contenuto in?'cat'::tsquery <@ 'cat & rat'::tsqueryt

[Nota]

Nota

Gli operatori di contenimento tsquery considerano solo i lessemi elencati nelle due query, ignorando la combinazione degli operatori.

In aggiunta agli operatori mostrati nella tabella, per i tipi tsvector e tsquery, sono definiti gli operatori di confronto ordinari B-tree (=, <, ecc). Questi non sono normalmente usati per ricerche di testo ma consentono, per esempio, di costruire indici unici sulle colonne di questo tipo.

Tabella 9.37. Funzioni per ricerca di testo

FunzioneTipo restituitoDescrizioneEsempioRisultato
to_tsvector([ config regconfig , ] document, text)tsvectorconverte un documento di testo in tsvectorto_tsvector('english', 'The Fat Rats')'fat':2 'rat':3
length(tsvector)integernumero di lessemi in un tsvectorlength('fat:2,4 cat:3 rat:5A'::tsvector)3
setweight(tsvector, "char")tsvectorassegna il peso di ogni elemento di tsvectorsetweight('fat:2,4 cat:3 rat:5B'::tsvector, 'A')'cat':3A 'fat':2A,4A 'rat':5A
strip(tsvector)tsvectorrimuove le posizioni ed i pesi da tsvectorstrip('fat:2,4 cat:3 rat:5A'::tsvector)'cat' 'fat' 'rat'
to_tsquery([ config regconfig , ] query, text)tsquerynormalizza le parole e le converte in tsqueryto_tsquery('english', 'The & Fat & Rats')'fat' & 'rat'
plainto_tsquery([ config regconfig , ] query, text)tsqueryproduce tsquery ignorando la punteggiaturaplainto_tsquery('english', 'The Fat Rats')'fat' & 'rat'
numnode(tsquery)integernumero di lessemi più operatori in tsquery numnode('(fat & rat) | cat'::tsquery)5
querytree(query, tsquery)textottiene la parte indicizzabile di una tsqueryquerytree('foo & ! bar'::tsquery)'foo'
ts_rank([ weights float4[], ] vector, tsvector, query, tsquery [, normalization integer ])float4classifica il documento per la queryts_rank(textsearch, query)0.818
ts_rank_cd([ weights float4[], ] vector, tsvector, query, tsquery [, normalization integer ]) float4classifica il documento per la query usando la "cover density"ts_rank_cd('{0.1, 0.2, 0.4, 1.0}', textsearch, query)2.01317
ts_headline([ config regconfig, ] document, text, query, tsquery [, options text ])textvisualizza una uguaglianza di queryts_headline('x y z', 'z'::tsquery)x y <b>z</b>
ts_rewrite(query, tsquery, target, tsquery, substitute, tsquery)tsqueryrimpiazza target con sobstitute dentro la queryts_rewrite('a & b'::tsquery, 'a'::tsquery, 'foo|bar'::tsquery)'b' & ( 'foo' | 'bar' )
ts_rewrite(query, tsquery, select, text)tsqueryrimpiazza usando i target ed i substitutes da un comando SELECTSELECT ts_rewrite('a & b'::tsquery, 'SELECT t,s FROM aliases')'b' & ( 'foo' | 'bar' )
get_current_ts_config()regconfigottiene la configurazione di ricerca di testo predefinitaget_current_ts_config()english
tsvector_update_trigger()triggerfunzione trigger per aggiornamento automatico di colonne tsvectorCREATE TRIGGER ... tsvector_update_trigger(tsvcol, 'pg_catalog.swedish', title, body)
tsvector_update_trigger_column()triggerfunzione trigger per aggiornamento automatico di colonne tsvectorCREATE TRIGGER ... tsvector_update_trigger_column(tsvcol, configcol, title, body)

[Nota]

Nota

Tutte le funzioni di ricerca testo che accettano un argomento opzionale regconfig devono usare la configurazione specificata da default_text_search_config quando quell'argomento è omesso.

Le funzioni nella tabella Tabella 9.38, «Funzioni per il debug di ricerca testo» sono elencate separatamente perchè non sono normalmente utilizzate nelle comuni operazioni di ricerca testo. Esse sono utili per lo sviluppo e la messa a punto di nuove configurazioni di ricerca testo.

Tabella 9.38. Funzioni per il debug di ricerca testo

FunzioneTipo restituitoDescrizioneEsempioRisultato
ts_debug([ config regconfig, ] document, text, OUT alias, text, OUT description, text, OUT token, text, OUT dictionaries, regdictionary[], OUT dictionary, regdictionary, OUT lexemes, text[])setof recordtesta una configurazionets_debug('english', 'The Brightest supernovaes')(asciiword,"Word, all ASCII",The,{english_stem},english_stem,{}) ...
ts_lexize(dict, regdictionary, token, text)text[]testa un dizionariots_lexize('english_stem', 'stars'){star}
ts_parse(parser_name, text, document, text, OUT tokid, integer, OUT token, text)setof recordtesta un parserts_parse('default', 'foo - bar')(1,foo) ...
ts_parse(parser_oid, oid, document, text, OUT tokid, integer, OUT token, text)setof recordtesta un parserts_parse(3722, 'foo - bar')(1,foo) ...
ts_token_type(parser_name, text, OUT tokid, integer, OUT alias, text, OUT description, text)setof recordottiene i tipi di token definiti dal parserts_token_type('default')(1,asciiword,"Word, all ASCII") ...
ts_token_type(parser_oid, oid, OUT tokid, integer, OUT alias, text, OUT description, text)setof recordottiene i tipi di token definiti dal parserts_token_type(3722)(1,asciiword,"Word, all ASCII") ...
ts_stat(sqlquery, text, [ weights text, ] OUT word, text, OUT ndoc, integer, OUT nentry, integer)setof recordottiene le statistiche di una colonna tsvectorts_stat('SELECT vector from apod')(foo,10,15) ...

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni e operatori per ricerca testo
PrecedenteFunzioni e operatori per indirizzi di reteFunzioni XMLSuccessivo