Tôi muốn truy vấn chỉ số như x like '%abc%'
Làm cách nào để tạo chỉ mục văn bản cho tìm kiếm '% abc%'?
Nếu tôi có một bảng như sau
create table t
(
data varchar(100)
);
Tôi muốn tạo ra một chỉ số để có thể làm những việc sau một cách hiệu quả:
select * from t where contains('%abc%');
Và điều này:
select * from t where contains('abc%');
I cũng muốn bảng này được cập nhật trực tiếp.
Làm cách nào để tạo chỉ mục như vậy? (Tôi có cảm giác mình cần một chỉ số ctxcat
, nhưng tôi đang nhầm lẫn về những lựa chọn nào tôi cần cung cấp cho nó)
Tôi đang sử dụng Oracle 10g.
Cảm ơn câu trả lời. Chỉ cần một vài câu hỏi: «prefix_index' là« abc% 'truy vấn và 'substring_index' cho'% abc% 'truy vấn? Và chỉ số chuỗi con theo mặc định chỉ mục tất cả các chất nền? Ngoài ra, làm cách nào để sử dụng chỉ mục này? Liệu 'chứa (col, '% abc%')' và 'chứa (col, 'abc%')' có phải là thủ thuật không? – Clinton
Có những tìm kiếm đó sẽ hoạt động, đã cập nhật với liên kết có thể giải thích tốt hơn tôi, nhưng về cơ bản các thông số được sử dụng để cải thiện hiệu suất của chính xác loại tìm kiếm đó. –