Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
SQL Server veritabanları varsayılan olarak tam metin etkindir. Ancak tam metin sorguları çalıştırabilmeniz için tam metin kataloğu oluşturmanız ve aramak istediğiniz tablolarda veya dizine alınan görünümlerde tam metin dizini oluşturmanız gerekir.
İki adımda tam metin araması ayarlama
Tam metin aramasını ayarlamak için iki temel adım vardır:
- Tam metin kataloğu oluşturun.
- Aramak istediğiniz tablolarda veya dizinli görünümde tam metin dizini oluşturun.
Her tam metin dizini bir tam metin kataloğuna ait olmalıdır. Her tam metin dizini için ayrı bir metin kataloğu oluşturabilir veya birden çok tam metin dizinini belirli bir katalogla ilişkilendirebilirsiniz. Tam metin kataloğu sanal bir nesnedir ve herhangi bir dosya grubuna ait değildir. Katalog, bir tam metin dizin grubuna başvuran mantıksal bir kavramdır.
Not
Bu adımlarda, SQL Server'ı yüklerken isteğe bağlı Full-Text Search bileşenlerini yüklediğiniz varsayılır. Aksi takdirde, SQL Server Kurulumu'nu yeniden çalıştırarak bunları eklemeniz gerekir.
Sihirbazla tam metin araması ayarlama
Sihirbaz kullanarak tam metin araması ayarlamak için bkz. Full-Text Dizin Oluşturma Sihirbazı'nı kullanma.
Transact-SQL ile tam metin araması ayarlama
Aşağıdaki iki bölümden oluşan örnek, AdventureWorks örnek veritabanında AdvWksDocFTCat adlı bir tam metin kataloğu oluşturur ve ardından örnek veritabanındaki Document tablosunda bir tam metin dizini oluşturur. Bu deyim, SQL Server kurulumu sırasında belirtilen varsayılan dizinde tam metin kataloğunu oluşturur.
AdvWksDocFTCat adlı klasör varsayılan dizindedir.
AdvWksDocFTCatadlı bir tam metin kataloğu oluşturmak için örnekte CREATE FULLTEXT CATALOG deyimi kullanılır:USE AdventureWorks; GO CREATE FULLTEXT CATALOG AdvWksDocFTCat;Daha fazla bilgi için bkz. Full-Text Katalogları Oluşturma ve Yönetme.
Belge tablosunda tam metin dizini oluşturabilmeniz için önce, tablonun benzersiz, tek sütunlu, null değer atanamayan bir dizini olduğundan emin olun. Aşağıdaki CREATE INDEX deyimi, Document tablosunun DocumentID sütununda
ui_ukDocbenzersiz bir dizin oluşturur:CREATE UNIQUE INDEX ui_ukDoc ON Production.Document(DocumentNode);Aşağıdaki
Documentdeyimini kullanarak mevcut tam metin dizinini tablosuna bırakın.DROP FULLTEXT INDEX ON Production.Document GOBenzersiz bir anahtarınız olduktan sonra, aşağıdaki
Documentdeyimini kullanarak tablosunda tam metin dizini oluşturabilirsiniz.CREATE FULLTEXT INDEX ON Production.Document ( Document --Full-text index column name TYPE COLUMN FileExtension --Name of column that contains file type information Language 2057 --2057 is the LCID for British English ) KEY INDEX ui_ukDoc ON AdvWksDocFTCat --Unique index WITH CHANGE_TRACKING AUTO --Population type; GOBu örnekte tanımlanan TÜR SÜTUNU, tablodaki 'Document' sütununun her satırındaki belgenin türünü içeren tür sütununu belirtir (ikili türündedir). Tür sütunu, belirli bir satırdaki belgenin kullanıcı tarafından sağlanan ".doc", ".xls" vb. dosya uzantısını depolar. Full-Text Altyapısı, belirli bir satırdaki dosya uzantısını kullanarak bu satırdaki verileri ayrıştırmak için kullanılacak doğru filtreyi çağırır. Filtre satırın ikili verilerini ayrıştırdıktan sonra, belirtilen sözcük ayırıcı içeriği ayrıştırıyor. (Bu örnekte, İngiliz İngilizcesi için ayırıcı sözcüğü kullanılır.) Daha fazla bilgi için bkz. Arama için Filtreleri Yapılandırma ve Yönetme .
Daha fazla bilgi için bkz. Oluşturma ve Yönetme Full-Text Dizinleri.
Tam metin dizini seçeneklerini belirleme
Dil seçin
Sütun dilini seçme hakkında bilgi için bkz. Full-Text Dizini Oluştururken Dil Seçme.
Dosya grubu seçme
Tam metin dizini oluşturma işlemi oldukça yoğun G/Ç gerektirir. Özetle, SQL Server'dan veri okuma ve ardından filtrelenen verileri tam metin dizinine yayma işlemiyle oluşur. En iyi yöntem olarak, veritabanı dosya grubunda G/Ç performansını en üst düzeye çıkarmak için en iyi olan tam metin dizinini bulun veya başka bir birimde farklı bir dosya grubundaki tam metin dizinlerini bulun.
Tam metin kataloğu seçme
Aynı güncelleştirme özelliklerine sahip tabloları (az sayıda değişiklikle çok sayıda değişiklik veya günün belirli bir saatinde sık değişen tablolar gibi) aynı tam metin kataloğu altında ilişkilendirmenizi öneririz. Tam metin kataloğu popülasyon zamanlamalarını ayarlayarak, tam metin dizinleri yüksek veritabanı etkinliği dönemlerinde veritabanı sunucusunun kaynak kullanımını olumsuz etkilemeden tablolarla zaman uyumlu kalır.
Aşağıdaki yönergeleri göz önünde bulundurun:
Milyonlarca satırı olan bir tablonun dizinini oluştururken tabloyu kendi tam metin kataloğuna atayın.
Tam metin dizini oluşturulmuş tablolarda gerçekleşen değişiklik miktarını ve toplam satır sayısını göz önünde bulundurun. Değiştirilen toplam satır sayısı, son tam metin popülasyonu sırasında tablodaki satır sayısıyla birlikte milyonlarca satırı temsil ediyorsa, tabloyu kendi tam metin kataloğuna atayın.
Benzersiz bir dizin ilişkilendir.
Tam metin için benzersiz anahtarınızda her zaman mevcut en küçük benzersiz indeksi seçin. (4 baytlık, tamsayı tabanlı dizin en uygunudur.) Bu, dosya sistemindeki Microsoft Search hizmetinin gerektirdiği kaynakları önemli ölçüde azaltır. Birincil anahtar büyükse (100 bayt'ın üzerinde), tam metin benzersiz anahtarı olarak tabloda başka bir benzersiz dizin seçmeyi (veya başka bir benzersiz dizin oluşturmayı) göz önünde bulundurun. Aksi takdirde, tam metin benzersiz anahtar boyutu izin verilen en büyük boyutu (900 bayt) aşıyorsa, tam metin popülasyonu devam edemeyecektir.
Durdurma listesini ilişkilendir
durdurma listesi, gürültü sözcükleri olarak da bilinen bir stopword listesidir. Her tam metin diziniyle bir durdurma listesi ilişkilendirilir ve bu durdurma listesindeki sözcükler bu dizindeki tam metin sorgularına uygulanır. Varsayılan olarak, sistem durdurma listesi yeni bir tam metin diziniyle ilişkilendirilir. Kendi durdurma listenizi de oluşturabilir ve kullanabilirsiniz.
Örneğin, aşağıdaki CREATE FULLTEXT STOPLIST Transact-SQL deyimi, sistem durdurma listesinden kopyalayarak myStoplist adlı yeni bir tam metin durdurma listesi oluşturur:
CREATE FULLTEXT STOPLIST myStoplist FROM SYSTEM STOPLIST;
GO
Aşağıdaki ALTER FULLTEXT STOPLIST Transact-SQL deyimi myStoplist adlı bir durdurma listesini değiştirerek önce İspanyolca ve ardından Fransızca için 'en' sözcüğünü ekler:
ALTER FULLTEXT STOPLIST myStoplist ADD 'en' LANGUAGE 'Spanish';
ALTER FULLTEXT STOPLIST myStoplist ADD 'en' LANGUAGE 'French';
GO
Daha fazla bilgi için bkz. Full-Text Arama için Stopwords ve Stoplists yapılandırma ve yönetme.
Tam metin dizinini güncelleştirme
Normal SQL Server dizinleri gibi, ilişkili tablolarda veriler değiştirildiğinden tam metin dizinleri de otomatik olarak güncelleştirilebilir. Bu, varsayılan davranıştır. Alternatif olarak, tam metin dizinlerinizi -date up-toel ile veya belirtilen zamanlanmış aralıklarla tutabilirsiniz. Tam metin dizinini doldurma işlemi zaman alabilir ve yoğun kaynak kullanabilir. Bu nedenle, dizin güncelleştirmesi genellikle arka planda çalışan ve temel tablodaki değişikliklerden sonra tam metin dizinini güncel tutan zaman uyumsuz bir işlem olarak gerçekleştirilir.
Temel tablodaki her değişikliğin hemen ardından tam metin dizininin güncelleştirilmesi de yoğun kaynak kullanır. Bu nedenle, yüksek bir güncelleştirme/ekleme/silme oranınız varsa sorgu performansında bir düşüş yaşayabilirsiniz. Bu durumda, kaynak sorgularıyla rekabet etmek yerine, ara sıra birçok değişikliği takip etmek için manuel değişiklik izleme güncelleştirmelerini zamanlamayı göz önünde bulundurun.
Daha fazla bilgi için bkz. Full-Text Dizinlerini Doldurma.
Sonraki adımlar
SQL Server Full-Text Arama'yı ayarladıktan sonra tam metin sorguları çalıştırmaya hazır olursunuz. Daha fazla bilgi için bkz. Full-Text Arama ileSorgusu.