Vorrei query indice come x like '%abc%'
Come creare un indice di testo per la ricerca '% abc%'?
Se ho una tabella come la seguente
create table t
(
data varchar(100)
);
voglio creare un indice per essere in grado di effettuare le seguenti operazioni in modo efficiente:
select * from t where contains('%abc%');
E questo:
select * from t where contains('abc%');
I voglio anche che questa tabella sia aggiornata dal vivo.
Come si crea un indice di questo tipo? (Ho la sensazione che ho bisogno di un indice ctxcat
, ma sono confuso su quali opzioni ho bisogno di dargli)
Sto usando Oracle 10g.
Grazie per la risposta. Solo alcune domande: 'prefix_index' per le query' abc% 'e 'substring_index' per le query'% abc% '? E l'indice della sottostringa per default indice tutte le sottostringhe? Inoltre, come posso usare questo indice? Will 'contiene (col, '% abc%')' e 'contiene (col, 'abc%')' fa il trucco? – Clinton
Sì, quelle ricerche funzioneranno, sono state aggiornate con un link che può spiegarlo meglio di me, ma essenzialmente i parametri vengono utilizzati per migliorare le prestazioni esattamente di quel tipo di ricerca. –