Non fuori dalla scatola, temo. Potrebbe essere possibile confrontare due tsvector per determinare se sono abbastanza simili, o tirare il top n tsvector simile, ma non ci sono funzionalità out-of-the-box per farlo. La buona notizia è che siccome i vettori satellitari supportano l'indicizzazione GIN, la parte complicata è fatta per te.
Quello che penso che dovresti fare è creare una funzione in C che determini l'intersezione di due tsvector. Da lì è possibile creare una funzione che determina se si sovrappongono e un operatore che risolve questo problema. Da lì non dovrebbe essere troppo difficile creare una classifica basata sulla più grande sovrapposizione.
Naturalmente ho il sospetto che ciò sia più facile da fare in una lingua come C, ma probabilmente si potrebbero usare anche altri linguaggi procedurali se è necessario.
La cosa meravigliosa di PostgreSQL è che tutto è possibile. ovviamente il rovescio della medaglia è che quando ti allontani dalla funzionalità di base puoi farlo da solo.
fonte
2013-04-02 04:38:42
potresti aggiungere ulteriori informazioni, quali sono le tue esigenze? Stai cercando documenti simili tra loro? Classificazione dei documenti con una ricerca a testo integrale? Una sorta di approccio ibrido? –