Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để tạo chỉ mục văn bản cho tìm kiếm '% abc%'?

Tôi sẽ sử dụng điều này (đặt cho bạn độ dài tối thiểu và tối đa thành các giá trị phù hợp)

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

Các tham số được giải thích tại đây Tham chiếu văn bản Oracle

và xem câu hỏi này về cách quản lý việc làm mới và cách lập chỉ mục có thể không nhanh hơn quá trình quét toàn bộ với dữ liệu bản số cao:

Điều chỉnh hiệu suất PL / SQL cho LIKE '% ...% 'Truy vấn ký tự đại diện



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Biểu thức chính quy _ # ở cuối chuỗi

  2. kích hoạt nếu khác

  3. Giúp tôi đặt thuật ngữ Oracle vào thuật ngữ SQL Server

  4. Làm thế nào để có được ngày cuối cùng của tháng trong Oracle

  5. Thứ tự tham số thủ tục được lưu trữ trong C # Oracle