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.
SQL Server Full-Text Arama sorguları, Full-Text Search eş anlamlılar sözlüğü kullanarak kullanıcı tarafından belirtilen terimlerin eş anlamlılarını arayabilir. Her eş anlamlılar sözlüğü, belirli bir dil için bir eş anlamlılar kümesi tanımlar. Tam metin verilerinize göre uyarlanmış bir eş anlamlılar sözlüğü geliştirerek, bu veriler üzerindeki tam metin sorgularının kapsamını etkili bir şekilde genişletebilirsiniz.
Eş anlamlılar sözlüğü eşleştirmesi, tüm FREETEXT ve FREETEXTTABLE sorguları ve yan tümcesini belirten CONTAINS ve FORMSOF THESAURUS sorguları için gerçekleşir.
Full-Text Arama eş anlamlılar sözlüğü bir XML metin dosyasıdır.
Bir eş anlamlılar sözlüğünde ne var
Tam metin arama sorguları belirli bir dilde eş anlamlıları arayabilmesi için, söz konusu dil için eş anlamlılar eşleştirmelerini (yani, eş anlamlıları) tanımlamanız gerekir. Her eş anlamlılar sözlüğü, aşağıdaki ayarları tanımlamak için el ile yapılandırılmalıdır:
Genişletme kümesi
Genişletme kümesi, tam metin sorgusuyla birbirinin yerine kullanılan "yazar", "müellif" ve "gazeteci" gibi bir grup eş anlamlı içerir. Genişletme kümesindeki tüm eş anlamlılar için eşleşme içeren sorgular, genişletme kümesindeki diğer tüm eş anlamlıları içerecek şekilde genişletilir.
Daha fazla bilgi için bu makalenin devamında yer alan Genişletme Kümesinin XML Yapısı bölümüne bakın.
Yedek seti
Değiştirme kümesi, değiştirme kümesiyle değiştirilecek bir metin deseni içerir. Bir örnek için, bu makalenin devamında yer alan Değiştirme Kümesinin XML Yapısı bölümüne bakın.
Aksan ayarı
Belirli bir eş anlamlılar sözlüğü için, tüm arama desenleri tilde (~), keskin vurgu işareti (´) veya umlaut (¨) gibi aksan işaretlerine duyarlı veya duyarsızdır (yani, aksana duyarlı veya aksana duyarsız). Örneğin, tam metin sorgusunda diğer modellerle değiştirilmesi için "café" modelini belirlediğinizi varsayalım. Eş anlamlılar sözlüğü vurguya duyarsızsa, tam metin arama "café" ve "cafe" kalıplarının yerini alır. Eş anlamlılar sözlüğü vurguya duyarlıysa, tam metin araması yalnızca "café" deseninin yerini alır. Varsayılan olarak eş anlamlılar sözlüğü aksan duyarsızdır.
Varsayılan eş anlamlılar sözlüğü dosyaları
SQL Server, desteklenen her dil için bir xml eş anlamlılar sözlüğü dosyası kümesi sağlar. Bu dosyalar temelde boş. Bunlar yalnızca tüm SQL Server eş anlamlılar sözlüğü için ortak olan en üst düzey XML yapısını ve açıklamalı örnek eş anlamlılar sözlüğü içerir.
Eş anlamlılar sözlüğü dosyalarının konumu
Eş anlamlılar sözlüğü dosyalarının varsayılan konumu:
<SQL_Server_data_files_path>\MSSQL13.MSSQLSERVER\MSSQL\FTDATA\
Bu varsayılan konum aşağıdaki dosyaları içerir:
Dile özgü eş anlamlılar sözlüğü dosyaları
Kurulum, boş eş anlamlılar sözlüğü dosyalarını önceki konuma yükler. Desteklenen her dil için ayrı bir dosya sağlanır. Sistem yöneticisi bu dosyaları özelleştirebilir.
Eş anlamlılar sözlüğü dosyalarının varsayılan dosya adları aşağıdaki biçimi kullanır:
'ts' + <three-letter language-abbreviation> + '.xml'Belirli bir dil için eş anlamlılar sözlüğü dosyasının adı kayıt defterinde aşağıdaki değerde belirtilir:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<instance-name>\MSSearch\<language-abbrev>Genel eş anlamlılar sözlüğü dosyası
boş bir genel eş anlamlılar sözlüğü dosyası tsGlobal.xml.
Eş anlamlılar sözlüğü dosyasının konumunu değiştirme
Kayıt defteri anahtarını değiştirerek eş anlamlılar sözlüğü dosyasının konumunu ve adlarını değiştirebilirsiniz. Her dil için eş anlamlılar sözlüğü dosyasının konumu kayıt defterinde aşağıdaki değerde belirtilir:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\<instance name>\MSSearch\Language\<language-abbreviation>\TsaurusFile
Genel eş anlamlılar sözlüğü dosyası, LCID 0 ile Nötr dile karşılık gelir. Bu değer yalnızca yöneticiler tarafından değiştirilebilir.
Tam metin sorgularında eş anlamlılar sözlüğünün kullanımı nasıl olur?
Eş anlamlılar sözlüğü sorgusu hem dile özgü eş anlamlılar sözlüğü hem de genel eş anlamlılar sözlüğü kullanır.
İlk olarak, sorgu dile özgü dosyayı arar ve işlenmek üzere yükler (zaten yüklenmemişse). Sorgu, eş anlamlılar sözlüğü dosyasındaki genişletme kümesi ve değiştirme kümesi kuralları tarafından belirtilen dile özgü eş anlamlıları içerecek şekilde genişletilir.
Bu adımlar daha sonra genel eş anlamlılar sözlüğü için yinelenir. Ancak, bir terim dile özgü eş anlamlılar sözlüğü dosyasındaki bir eşleşmenin parçasıysa, terim genel eş anlamlılar sözlüğünde eşleştirme için uygun değildir.
Eş anlamlılar sözlüğü dosyasının yapısı
Her eş anlamlılar sözlüğü dosyası, kimliği Microsoft Search Thesaurus olan bir XML kapsayıcısını ve bir örnek eş anlamlılar sözlüğü içeren bir açıklamayı <!-- ... --> tanımlar. Tesaurus, diakritik ayarını, genişletme kümelerini ve değiştirme kümelerini tanımlayan alt öğelerin örneklerini içeren bir <thesaurus> öğesinde tanımlanır.
Tipik bir boş eş anlamlılar sözlüğü dosyası aşağıdaki XML metnini içerir:
<XML ID="Microsoft Search Thesaurus">
<!-- Commented out
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<expansion>
<sub>Internet Explorer</sub>
<sub>IE</sub>
<sub>IE5</sub>
</expansion>
<replacement>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>Windows 2012</sub>
</replacement>
<expansion>
<sub>run</sub>
<sub>jog</sub>
</expansion>
</thesaurus>
-->
</XML>
Genişletme kümesinin XML yapısı
Her genişletme kümesi bir <expansion> öğenin içine alınır. Bu öğenin içinde, bir <sub> öğesinde bir veya daha fazla değiştirme belirtirsiniz. Genişletme kümesinde, birbirinin eş anlamlısı olan bir değişim grubu belirtebilirsiniz.
Örneğin, "yazar", "author" ve "gazeteci" terimlerini eş anlamlı olarak ele almak için genişletme bölümünü düzenleyebilirsiniz. Bir değiştirmede eşleşmeler içeren tam metin arama sorguları, genişletme kümesinde belirtilen diğer tüm değiştirmeleri içerecek şekilde genişletilir. Bu nedenle, önceki örnekte "yazar" kelimesi için EŞ ANLAMLI SÖZCÜKLER veya SERBEST METİN sorgusu gönderdiğinizde, tam metin araması aynı zamanda "yazar" ve "gazeteci" kelimelerini içeren arama sonuçlarını da döndürür.
Önceki örnekte genişletme kümesi bölümü şöyle görünür:
<expansion>
<sub>writer</sub>
<sub>author</sub>
<sub>journalist</sub>
</expansion>
Değiştirme kümesinin XML yapısı
Her değiştirme kümesi bir <replacement> öğenin içine alınır. Bu öğe içinde, bir veya daha fazla deseni bir <pat> öğesinde ve her eş anlamlı için birer tane olmak üzere sıfır veya daha fazla değiştirmeyi <sub> öğelerinde belirtebilirsiniz. Değiştirme kümesiyle değiştirilecek bir desen belirtebilirsiniz. Desenler ve değiştirmeler bir sözcük veya bir sözcük dizisi içerebilir. Bir desen için bir değiştirme belirtilmemişse, deseni kullanıcı sorgusundan kaldırmanın etkisi vardır.
Örneğin, "Win8" şablon aramalarının yerine "Windows Server 2012" veya "Windows 8.0" kullanılmasını istediğinizi diyelim. "Win8" için tam metin sorgusu çalıştırırsanız, tam metin araması yalnızca "Windows Server 2012" veya "Windows 8.0" içeren arama sonuçlarını döndürür. "Win8" içeren sonuçlar döndürmez. Bunun nedeni, "Win8" deseninin "Windows Server 2012" ve "Windows 8.0" desenleri ile "değiştirilmesi"dir.
Değiştirme kümesi bölümü, önceki örnekte şöyle görünür:
<replacement>
<pat>Win8</pat>
<sub>Windows Server 2012</sub>
<sub>Windows 8.0</sub>
</replacement>
Eşlenen benzer desenlere sahip iki yerine koyma kümeniz varsa, daha uzun olan öncelikli olur. Örneğin, "Internet Explorer çevrimiçi topluluğu" için FORMS OF THESAURUS sorgusu çalıştırırsanız ve aşağıdaki değiştirme kümelerine sahipseniz, "Internet Explorer" değiştirme kümesi "Internet" değiştirme kümesinden önceliklidir. Bu nedenle sorgu "IE çevrimiçi topluluğu" veya "IE 9 çevrimiçi topluluğu" olarak işlenir.
<replacement>
<pat>Internet</pat>
<sub>intranet</sub>
</replacement>
ve
<replacement>
<pat>Internet Explorer</pat>
<sub>IE</sub>
<sub>IE 9</sub>
</replacement>
Aksan ayarının XML yapısı
Eş anlamlılar sözlüğünin aksan ayarı tek <diacritics_sensitive> bir öğede belirtilir. Bu öğe, aşağıdaki gibi vurgu duyarlılığını denetleen bir tamsayı değeri içerir:
| Aksan Ayarı | Değer | XML |
|---|---|---|
| Vurguya duyarsız | 0 | <diacritics_sensitive>0</diacritics_sensitive> |
| Vurguya duyarlı | 1 | <diacritics_sensitive>1</diacritics_sensitive> |
Uyarı
Bu ayar dosyaya yalnızca bir kez uygulanabilir ve dosyadaki tüm arama desenleri için geçerlidir. Bu ayar tek tek desenler için belirtilemiyor.
Eş anlamlılar sözlüğü düzenleme
Eş anlamlılar sözlüğü dosyasını (XML dosyası) düzenleyerek belirli bir dil için eş anlamlılar sözlüğü yapılandırabilirsiniz. Kurulum sırasında, yalnızca <xml> kapsayıcısını ve açıklama satırı olarak belirtilen örnek <thesaurus> öğesini içeren boş eş anlamlılar sözlüğü dosyaları yüklenir. Eş anlamlıları arayan tam metin arama sorgularının düzgün çalışması için, bir eş anlamlılar kümesini tanımlayan gerçek <thesaurus> bir öğe oluşturmanız gerekir. İki eş anlamlı biçimi, genişletme kümeleri ve değiştirme kümeleri tanımlayabilirsiniz.
Eş anlamlılar sözlüğü dosyasını düzenleme
Eş anlamlılar sözlüğü dosyasını Not Defteri'nde veya başka bir metin düzenleyicisinde açın.
Eş anlamlılar sözlüğü dosyasını ilk kez düzenliyorsanız, sırasıyla dosyanın başında ve sonunda aşağıdaki açıklama satırlarını kaldırın:
<!--Commented out -->Bir değiştirme kümesini veya genişletme kümesini ekleyin, değiştirin veya silin.
Dosyayı kaydedin ve Not Defteri'ni kapatın.
sp_fulltext_load_thesaurus_file kullanarak eş anlamlılar sözlüğü dosyasının içeriğini
tempdbiçine yükleyin, dosyanın diline karşılık gelen yerel tanımlayıcıyı (LCID) belirtin. Örneğin, tsenu.xmlİngilizce eş anlamlılar sözlüğü dosyası için karşılık gelen LCID 1033'dür.USE AdventureWorks; EXECUTE sys.sp_fulltext_load_thesaurus_file 1033; GO
Eş anlamlılar sözlüğü dosyalarını düzenleme önerileri
Eş anlamlılar sözlüğü dosyasındaki girdilerin özel karakter içermemesi gerektiğini öneriyoruz. Bunun nedeni, sözcük ayırıcıların özel karakterlere göre ince davranışlara sahip olmasıdır. Eş anlamlılar sözlüğü girdisi herhangi bir özel karakter içeriyorsa, bu girdiyle birlikte kullanılan sözcük ayırıcıların tam metin sorgusu için küçük davranışsal etkileri olabilir.
Tam metin dizininden stopword'ler atlandığından, girişlerin hiçbir stopword içermesini öneririz <sub> . Sorgular eş anlamlılar sözlüğü dosyasındaki <sub> girdileri içerecek şekilde genişletilir ve bir <sub> girdide stopwords varsa sorgu boyutu gereksiz yere artar.
Eş anlamlılar sözlüğü dosyalarını düzenleme kısıtlamaları
Eş anlamlılar sözlüğü dosyasını düzenlemek için aşağıdaki kısıtlamalar geçerlidir:
Yalnızca sistem yöneticileri eş anlamlılar sözlüğü dosyalarını güncelleştirebilir, değiştirebilir veya silebilir.
Metin düzenleyicisi araçlarını kullanarak eş anlamlılar sözlüğü dosyalarını düzenlerken, dosyaların Unicode biçiminde kaydedilmesi ve Bayt Sırası İşaretleri belirtilmesi gerekir.
Eş anlamlılar sözlüğü girdileri boş olamaz veya boş bir dizgeye dönüşemez.
Eş anlamlılar sözlüğü dosyasındaki tümcecikler 512 karakterden uzun olmamalıdır.
Eş anlamlılar sözlüğü, genişletme kümelerindeki
<sub>girdileri ve değiştirme kümelerindeki<pat>öğeleri arasında yinelenen girdiler içermemelidir.