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
Sözcük ayırıcılar ve kök bulucular, tüm tam metin dizinli veriler üzerinde dil analizi gerçekleştirir. Dil analizi aşağıdaki iki şeyi yapar:
Sözcük sınırlarını bulma (sözcük bölme). sözcük ayırıcı, dilin sözcük kuralları temelinde sözcük sınırlarının nerede mevcut olduğunu belirleyerek sözcükleri tek tek tanımlar. Her sözcük (belirteciolarak da bilinir), boyutunu küçültmek için sıkıştırılmış bir gösterim kullanılarak tam metin dizinine eklenir.
Fiilleri çekimle (kök çıkarma). stemmer, söz konusu dilin kurallarına göre belirli bir sözcüğün çekim biçimlerini oluşturur (örneğin, "koşuyor", "koştu" ve "koşucu", "koşmak" sözcüğünün çeşitli biçimleridir).
Sözcük ayırıcılar ve kök bulucular dile özgüdür.
Sözcük ayırıcılar ve kök bulucular dile özeldir ve dil bilim analizi kuralları farklı dillerde farklılık gösterir. Dile özgü sözcük ayırıcılar, elde edilen terimleri bu dil için daha doğru hale getirir.
SQL Server tarafından desteklenen tüm diller için sağlanan sözcük ayırıcıları ve kök bulucuları kullanmak için genellikle herhangi bir işlem yapmanız gerekmez.
Belirli alt dil için bir kelime ayırıcı olmadığında, ancak dil ailesi için mevcut olduğunda, ana dil kullanılır. Örneğin, Fransızca sözcük ayırıcı Fransız Kanada metnini işlemek için kullanılır.
Belirli bir dil için kullanılabilir sözcük ayırıcı yoksa, nötr sözcük ayırıcı kullanılır. Nötr sözcük ayırıcı ile sözcükler boşluklar ve noktalama işaretleri gibi nötr karakterlerde kırılır.
Desteklenen dillerin listesini alma
SQL Server Full-Text Search tarafından desteklenen dillerin listesini görmek için aşağıdaki Transact-SQL deyimini kullanın. Bu listedeki bir dilin varlığı, sözcük ayırıcıların dil için kaydedildiğini gösterir.
SELECT *
FROM sys.fulltext_languages;
Kayıtlı sözcük ayırıcıların listesini alma
Full-Text Arama'nın bir dil için sözcük ayırıcıları kullanması için bunların kaydedilmesi gerekir. Kayıtlı sözcük ayırıcılar için, ilişkili dil kaynakları ( sözcük ayırıcılar, kirli sözcükler (stopwords) ve eş anlamlılar sözlüğü dosyaları - tam metin dizin oluşturma ve sorgulama işlemleri için de kullanılabilir hale gelir.
Kayıtlı sözcük ayırıcı bileşenlerinin listesini görmek için aşağıdaki deyimi kullanın.
EXECUTE sp_help_fulltext_system_components 'wordbreaker';
GO
Daha fazla bilgi için bkz. sp_help_fulltext_system_components.
Eğer bir sözcük ayırıcı eklerseniz veya kaldırırsanız
Sözcük ayırıcı ekler, kaldırır veya değiştirirseniz, tam metin dizin oluşturma ve sorgulama için desteklenen Microsoft Windows yerel ayar tanımlayıcıları (LCID) listesini yenilemeniz gerekir. Daha fazla bilgi için bkz. Filtreleri ve sözcük ayırıcıları özelleştirme.
Varsayılan tam metin dili seçeneğini ayarlama
SQL Server Kurulumu, SQL Server'ın yerelleştirilmiş bir sürümü için, uygun bir eşleşme varsa varsayılan tam metin dili seçeneğini sunucunun diline ayarlar. SQL Server'ın yerelleştirilmemiş bir sürümü için varsayılan tam metin dili seçeneği İngilizce'dir.
Tam metin dizini oluşturduğunuzda veya değiştirdiğinizde, tam metin dizinli her sütun için farklı bir dil belirtebilirsiniz. Bir sütun için dil belirtilmezse, varsayılan değer yapılandırma seçeneğinin değeridir varsayılan tam metin dili.
Not
Tek bir tam metin sorgu işlevi tümcesinde listelenen tüm sütunlar, sorguda LANGUAGE seçeneği belirtilmedikçe aynı dili kullanmalıdır. Sorgulanan tam metin dizinli sütun için kullanılan dil, tam metin sorgu koşullarının (CONTAINS ve FREETEXT) bağımsız değişkenlerinde gerçekleştirilen dil analizini ve işlevleri (CONTAINSTABLE ve FREETEXTTABLE) belirler.
Dizinlenmiş sütun için dil seçme
Tam metin dizini oluştururken, dizine alınan her sütun için bir dil belirtmenizi öneririz. Bir sütun için dil belirtilmezse sistem varsayılan dili kullanılır. Sütunun dili, hangi sözcük ayırıcının ve kök ayırıcının bu sütunun dizinini oluşturmak için kullanılacağını belirler. Ayrıca, bu dilin eş anlamlılar sözlüğü dosyası sütundaki tam metin sorguları tarafından kullanılır.
Tam metin dizini oluşturmak için sütun dilini seçerken göz önünde bulundurmanız gereken birkaç şey vardır. Bu önemli noktalar, metninizin Full-Text Altyapısı tarafından nasıl belirteç haline getirildiği ve dizine nasıl alındığı ile ilgilidir. Daha fazla bilgi için bkz. Full-Text Dizini Oluştururken Dil Seçme.
Belirli sütunların sözcük ayırıcı dilini görüntülemek için aşağıdaki deyimi çalıştırın.
SELECT language_id AS 'LCID'
FROM sys.fulltext_index_columns;
Daha fazla bilgi için bkz. sys.fulltext_index_columns.
Sözcük hatalarına neden olan zaman aşımı hatalarını giderme
Bir kelime ayırma zaman aşımı hatası, çeşitli durumlarda meydana gelebilir. Bu durumlar ve her durumda yanıt verme hakkında bilgi için bkz. MSSQLSERVER_30053.
MSSQLSERVER_30053 hatası hakkında bilgi
| Mülk | Değer |
|---|---|
| Ürün Adı | SQL Sunucusu |
| Olay Kimliği | 30053 |
| Olay Kaynağı | MSSQLSERVER |
| Bileşen | SQLEngine |
| Sembolik Ad | FTXT_QUERY_E_WORDBREAKINGTIMEOUT |
| İleti Metni | Tam metin sorgu dizesi için kelime ayırma zaman aşımına uğradı. Sözcük ayırıcının tam metin sorgu dizesini işlemesi uzun sürüyorsa veya sunucuda çok sayıda sorgu çalışıyorsa bu durum oluşabilir. Sorguyu daha hafif bir yük altında yeniden çalıştırmayı deneyin. |
Açıklama
Aşağıdaki durumlarda sözcük hatalarına neden olan bir zaman aşımı hatası oluşabilir:
Sorgu dili için sözcük ayırıcı yanlış yapılandırıldı; örneğin, kayıt defteri ayarları yanlıştır.
Kelime ayırıcı belirli bir sorgu dizesi için düzgün çalışmıyor.
Sözcük ayırıcı belirli bir sorgu dizesi için çok fazla veri döndürür. Fazla veriler olası arabellek taşması saldırısı olarak değerlendirilir ve sözcük ayırma hizmetlerini barındıran filtre daemon işlemini (fdhost.exe) kapatır.
Filtre daemon işlemi yapılandırması yanlış.
En yaygın yapılandırma sorunları, parola süre sonu veya filtre daemon hesabının oturum açmasını engelleyen bir etki alanı ilkesidir.
Sunucu örneğinde çok ağır bir sorgu iş yükü çalışıyor; örneğin, sözcük ayırıcının tam metin sorgu dizesini işlemesi uzun sürdü veya sunucuda çok sayıda sorgu çalıştırılıyor. Bu en düşük olası nedendir.
Kullanıcı eylemi
Zaman aşımının olası nedenine uygun kullanıcı eylemini aşağıdaki gibi seçin:
| Olası neden | Kullanıcı eylemi |
|---|---|
| Sorgu dili için sözcük ayırıcı yanlış yapılandırılmış. | Üçüncü taraf sözcük ayırıcı kullanıyorsanız, bu sözcük işletim sistemine yanlış kaydedilmiş olabilir. Bu durumda, sözcük ayırıcıyı yeniden kaydedin. Daha fazla bilgi için bkz. Full-Text Search tarafından kullanılan sözcük ayırıcılarını önceki sürüme döndürme. |
| Kelime ayırıcı belirli bir sorgu dizesi için düzgün çalışmıyor. | Sözcük ayırıcı SQL Server tarafından destekleniyorsa Microsoft Müşteri Hizmetleri ve Desteği'ne başvurun. |
| Sözcük ayırıcı belirli bir sorgu dizesi için çok fazla veri döndürür. | Sözcük ayırıcı SQL Server tarafından destekleniyorsa Microsoft Müşteri Hizmetleri ve Desteği'ne başvurun. |
| Filtre daemon işlemi yapılandırması yanlış. | Geçerli parolayı kullandığınızdan ve bir etki alanı ilkesinin filtre daemon hesabının oturum açmasını engellemediğinden emin olun. |
| Sunucu örneğinde çok ağır bir sorgu iş yükü çalışıyor. | Sorguyu daha hafif bir yük altında yeniden çalıştırmayı deneyin. |
Güncelleştirilmiş sözcük ayırıcılarının etkisini anlama
SQL Server'ın her sürümü genellikle daha iyi dil kuralları olan ve önceki sözcük ayırıcılardan daha doğru olan yeni sözcük ayırıcılar içerir. Potansiyel olarak, yeni sözcük ayırıcıları SQL Server'ın önceki sürümlerinden içeri aktarılan tam metin dizinlerindeki sözcük ayırıcılarından farklı davranabilir.
Veritabanı SQL Server'ın geçerli sürümüne yükseltildiğinde tam metin kataloğu içeri aktarıldıysa bu önemlidir. Tam metin kataloğundaki tam metin dizinleri tarafından kullanılan bir veya daha fazla dil artık yeni sözcük ayırıcılarla ilişkilendirilebilir. Daha fazla bilgi için bkz. Yükseltme Full-Text Arama.