sql >> Database teknologi >  >> RDS >> Oracle

Hvordan opretter man tekstindeks til '%abc%'-søgning?

Jeg ville bruge dette (indstil min og maks. længde til passende værdier)

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')

Parametrene er forklaret her Oracle Text Reference

og se dette spørgsmål om, hvordan du administrerer opdateringen, og hvordan indekset muligvis ikke er hurtigere end en fuld scanning med data med høj kardinalitet:

PL/SQL Performance Tuning for LIKE '% ...%' Wildcard-forespørgsler



  1. mysql tidsstempel kolonne

  2. Jquery stjernevurdering tutorial ved hjælp af php og mysql

  3. Konverter sql-resultat til listepython

  4. GroupingError:ERROR:kolonnen skal vises i GROUP BY-sætningen eller bruges i en aggregeret funktion