Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara membuat indeks teks untuk pencarian '%abc%'?

Saya akan menggunakan ini (menetapkan panjang minimum dan maksimum untuk nilai yang sesuai)

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

Parameter dijelaskan di sini Referensi Teks Oracle

dan lihat pertanyaan ini tentang cara mengelola penyegaran dan bagaimana indeks mungkin tidak lebih cepat daripada pemindaian penuh dengan data kardinalitas tinggi:

Penyetelan Kinerja PL/SQL untuk LIKE '% ...%' Kueri Wildcard



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ERROR- ORA-00060:kebuntuan terdeteksi saat menunggu sumber daya

  2. Oracle 10g - optimalkan DI MANA BUKAN NULL

  3. Contoh APEX_ZIP

  4. REGEXP_INSTR() Fungsi di Oracle

  5. Bagaimana cara mendapatkan tahun berjalan menggunakan SQL di Oracle?