aşağıdaki'% abc%' araması için metin dizini nasıl oluşturulur?
create table t
(
data varchar(100)
);
ben verimli aşağıdakileri yapabilmek için bir dizin oluşturmak istediğiniz gibi bir tablo varsa ben x like '%abc%'
gibi endeks sorguları istiyorum:
select * from t where contains('%abc%');
Ve bu:
select * from t where contains('abc%');
ben Ayrıca bu tablonun canlı olarak güncellenmesini istiyorum.
Böyle bir dizini nasıl oluştururum? (Bir ctxcat
dizinine ihtiyacım var, ancak ne tür seçenekler vermem gerektiği konusunda kafam karıştı)
Oracle 10g kullanıyorum. veritabanı Eğer Sphinx Search
Sphinx kullanabilirsiniz ardından büyükse
Cevabınız için teşekkürler. Sadece birkaç soru: 'abc%' sorguları için 'prefix_index' ve'% abc% 'sorgular için 'substring_index' var mı? Ve alt dizin dizini varsayılan olarak tüm alt dizeleri indeksliyor mu? Ayrıca, bu dizini nasıl kullanırım? Will içerir (col, '% abc%') 've' içerir (col, 'abc%') hile yapmak? – Clinton
Evet, bu aramalar işe yarayacak, benden daha iyi açıklayabilecek bir bağlantıyla güncellendi, ancak esas olarak parametreler tam olarak bu tür aramaların performansını artırmak için kullanıldı. –