Jag skulle använda detta (ställ in min och maxlängd till lämpliga värden)
BEGIN
ctx_ddl.create_preference ('FT_WL', 'BASIC_WORDLIST');
ctx_ddl.set_attribute ('FT_WL', 'substring_index', 'YES');
ctx_ddl.set_attribute ('FT_WL', 'prefix_index', 'YES');
ctx_ddl.set_attribute ('FT_WL', 'prefix_min_length', 1);
ctx_ddl.set_attribute ('FT_WL', 'prefix_max_length', 6);
END;
CREATE INDEX fulltext_idx ON tmp_fulltext (fulltext)
INDEXTYPE IS CTXSYS.CTXCAT
PARAMETERS ('WORDLIST FT_WL')
Parametrarna förklaras här Oracle Text Reference
och se den här frågan om hur du hanterar uppdateringen och hur indexet kanske inte är snabbare än en fullständig genomsökning med data med hög kardinalitet:
PL/SQL Performance Tuning för LIKE '% ...%' Jokerteckenfrågor