Bir tam metin dizini oluşturma, bir dil seçin

Bir tam metin dizini oluştururken, dizine alınmış sütun sütun düzeyi dilini belirtmeniz gerekir. Sözcük ayırıcısı ve sözcük köklerini sütun üzerinde tam metin sorgular tarafından belirtilen dil kullanılacaktır. Birkaç sütun dili bir tam metin dizini oluştururken seçerken dikkat etmeniz gereken şeyler vardır. Metninizin nasıl tokenized için bu noktalar arasında ilişki ve sonra tam metin altyapısı tarafından dizine.

[!NOT]

Tam metin dizini sütun için bir sütun düzeyi dil belirtmek için dil kullanmak language_termsütun belirtirken fıkra. Daha fazla bilgi için fulltext INDEX (Transact-sql) oluşturve alter fulltext INDEX (Transact-sql).

Bu Konuda

  • Tam metin arama dil desteği

  • Sözcük sonu

  • Doğan

  • Tam metin arama sütunu türü etkisi

  • Varsayılmayan sütun düzeyinde dil bir tam metin sorgu belirtme

Tam metin arama dil desteği

Bu bölümde, sözcük ayırıcılarını ve sözcük köklerini giriş niteliğindedir ve anlatılmaktadır nasıl sütun düzeyi dil LCID tam metin arama kullanıyor.

Sözcük ayırıcılarını ve sözcük köklerini giriş

SQL Server 2008ve sonraki sürümleri içeren sözcük ayırıcılarını ve sözcük köklerini önceden mevcut olanlardan daha iyi olan yeni ve tam bir aile SQL Server.

[!NOT]

Microsoft doğal dil grubu (ms nlg) uygulanan ve bu yeni dile ait bileşenleri destekler.

Yeni sözcük ayırıcılarını aşağıdaki yararları sağlar:

  • Sağlamlık

    Test yeni sözcük ayırıcılarını yüksek basınç sorgu ortamlarda sağlam olduğunu göstermiştir.

  • Güvenlik

    Yeni sözcük ayırıcılarını varsayılan olarak etkinleştirilmiş olan SQL Serverdile ait bileşenleri güvenlik geliştirmeleri sayesinde. Harici bileşenler sözcük ayırıcılarını ve filtreleri gibi genel güvenliği ve sağlamlığı artırmak için imzalanmasını öneririz SQL Server. Bu bileşenler aşağıdaki şekilde imzalandığını doğrulamak için tam metin yapılandırabilirsiniz:

    EXEC sp_fulltext_service 'verify_signature';
    
  • Kalite

    Sözcük ayırıcılarını yeniden tasarlandı ve test yeni sözcük ayırıcılarını daha semantik nitelik--dan önceki sözcük ayırıcılarını sağladığını göstermiştir. Bu geri çekme doğruluğu artırır.

  • Kapsama diller geniş bir listesi için sözcük ayırıcılarını dahildir SQL Serverkutu ve varsayılan olarak etkindir.

Hangi dillerin listesi için SQL Serversözcük ayırıcısı ve sözcük köklerini, bakın listelenecektirsys.fulltext_languagesKatalog (Transact-sql)

[YUKARI]

Tam metin arama sütun düzeyi dil nasıl kullanır

Bir tam metin dizini oluştururken, her sütun için geçerli dil adı belirtmeniz gerekir. Bir dil adı geçerli, ancak değil tarafından döndürülen olup olmadığını listelenecektirsys.fulltext_languagesKatalog (Transact-sql)Katalog görünümü, tam metin arama düşme geri aynı dil ailesi, yakın kullanılabilir dil adını varsa. Aksi takdirde, tam metin arama geri tarafsız sözcük ayırıcısı için düşüyor. Geri çekme doğruluğu bu sonbaharda geri davranışı etkileyebilir. Bu nedenle bir tam metin dizini oluştururken her sütun için geçerli ve kullanılabilir dil adı belirtmeniz önerilir.

[!NOT]

LCID karşı tam metin dizinlemesi için uygun olan tüm veri türleri kullanılır (örneğin charya nchar). Eğer sıralama düzenini var bir char, varchar, ya textyazın sütun kümesi ayarı LCID tarafından tanımlanan dilden farklı bir dil için LCID Neyse tam dizin oluşturma ve sorgulama bu sütunları metin kullanılır.

[YUKARI]

Sözcük sonu

Sözcük ayırıcısı, dile özgü sözcük sınırları endekslenmiyor metin tokenizes. Bu nedenle, sözcük bölme davranış farklı diller arasında farklılık gösterir. Eğer bir dil kullanmak dillerde dizin için x {x, y ve z}, bazı davranışlarını beklenmeyen sonuçlara neden olabilir. Örneğin, bir tire (-) veya virgül (,) bir dil ancak başka atılır bir kelime sonu öğesi olabilir. Ayrıca belirli bir sözcüğün farklı farklı dilde kaynaklanıyor çünkü nadiren beklenmedik stemming davranış ortaya çıkabilir. Örneğin, İngilizce dilinde sözcük sınırları genellikle beyaz boşluk veya noktalama işareti bazı formu vardır. Almanca gibi diğer dillerde sözcük veya karakter birlikte yeniden birleştirilebilir. Bu nedenle, seçtiğiniz sütun düzeyi dili sütunun satır depolanacak beklediğiniz dili temsil etmelidir.

Batı dilleri

Batı dilleri için size hangi dillerin bir sütunda depolanacak değilseniz ya da birden fazla depolanması için beklediğiniz genel çözüm sütunda depolanmış olabilecek en karmaşık dil için sözcük ayırıcı ailesidir. Örneğin, İngilizce, İspanyolca ve Almanca içeriği tek bir sütunda depolamak bekleyebilirsiniz. Bu üç Batı dilleri çok benzer sözcük bölme kalıpları, en karmaşık olan Alman desenlerle sahip. Bu nedenle, bu durumda-cekti var olmak-e İngilizce ve İspanyolca metin doğru şekilde işlemek gerekir Almanca sözcük ayırıcı kullanmak için iyi bir tercih olabilir. Buna karşılık, İngilizce sözcük ayırıcısı Almanca metin mükemmel Almanca sözcükler nedeniyle işleme.

Bir dil ailesi en karmaşık dil sözcük ayırıcısı kullanarak her dil ailesindeki mükemmel endeksleme garanti değil unutmayın. Köşe durumlar içinde en karmaşık sözcük ayırıcısı düzgün başka bir dilde yazılmış metni idare edemiyorlar bulunmuyor olabilir.

[YUKARI]

Olmayan Batı dilleri

Olmayan Batı dilleri (örneğin, Çince, Japonca, Hintçe ve benzeri) Yukarıdaki çözüm mutlaka, dilsel nedenlerle çalışmaz. Olmayan Batı dilleri için aşağıdaki geçici çözümlerden birini deneyin:

  • Diller için farklı ailelerin

    Büyük ölçüde farklı diller, örneğin, İspanyolca ve Japonca bir sütun içerebilir ayrı sütunlarda farklı dil içeriğini saklamak düşünün. Bu her sütun için dile özgü sözcük ayırıcısı kullanmasını sağlayacak. Bu çözümü seçtiğiniz sorgu zaman sorgu dili bilmiyorsanız, sorguyu sağ satır veya belge bulur sağlamak için her iki sütun sorgu yayın gerekebilir.

  • İkili içeriği (örneğin, Microsoft Word belgeleri)

    Dizin oluşturulmuş içerik olduğunda binaryyazın, tam metin arama filtresi önce irsal o-e doğru sözcük ayırıcısı için ikili dosya içinde varolan belirli dil Etiketler onur metin içeriği işleyen. Bu durumda, dizin oluşturma zaman, bir belge veya belgenin bir bölümü için doğru LCID filtre yayarlar. Tam metin altyapısı ile bu LCID dilin sözcük ayırıcısı sonra arayacak. Ancak, çoklu dil içerik dizinleme sonra içerik doğru dizine doğrulamanızı öneririz.

  • Düz metin içeriği

    İçeriği düz metin olduğunda, sen dönüştürebilirsiniz xmlverileri yazın ve her belirli belge ya da belge bölümüne karşılık gelen dili belirten dil Etiketler Ekle. Bunun çalışması için ancak, tam metin dizinlemesi önce dil bilmesi gerekir.

[YUKARI]

Doğan

Sütun düzeyi dil seçerken bir sağlayabildiği doğan. Doğan (Inflectional) formları belirli bir dilde sözcüğün tüm kaynaklandığını arama işlemi tam metin sorguları olduğunu. Birçok dil işlemeye genel sözcük ayırıcısı kullandığınızda, yalnızca belirtilen sütun, sütun diğer diller için dil stemming işlemi çalışır. Örneğin, Almanca sözcük köklerini İngilizce veya İspanyolca için (ve benzeri) çalışmaz. Bu sorgu zaman seçtiğiniz hangi dili hatırlama bağlı etkileyebilir.

[YUKARI]

Tam metin arama sütunu türü etkisi

Dil seçiminde başka bir dikkat, verileri nasıl temsil için ilişkilidir. Depolanan değil veri varbinary(max)sütun, filtre yok özel gerçekleştirilir. Aksine, metin genellikle sözcük bölme bileşeni olarak geçtiğini-olduğunu.

Ayrıca, sözcük ayırıcılarını, özellikle yazılı metni işlemek için tasarlanmıştır. Senin metin biçimlendirme (html gibi) her türlü varsa, yani, eğer büyük dilsel doğruluk dizin oluşturma ve arama sırasında elde edemeyebilirsiniz. Bu durumda, iki seçeneğiniz vardır — metin veri depolamak için tercih edilen yöntem sadece olduğunu varbinary(max)sütun ve filtre uygulanmış bu yüzden belge türünü belirtmek için. Bu bir seçenek değilse, tarafsız sözcük ayırıcısı kullanarak ve mümkünse biçimlendirme veri (örneğin, 'br' ekleyerek düşünebilirsiniz HTML) parazit kelime listeler.

[!NOT]

Nötr dil belirttiğinizde dayanan bir dil stemming gelmek içine oyun değil.

[YUKARI]

Varsayılmayan sütun düzeyinde dil bir tam metin sorgu belirtme

Varsayılan olarak, içinde SQL Server, tam metin arama tam metin yan tümcesinde dahil her sütun için belirtilen dil kullanarak sorgu terimleri ayrıştırmak. Bu davranışı geçersiz kılmak için sorgu zaman varsayılan dili belirtin. Desteklenen dillerin dili olan kaynaklar yüklenir, language_termyan tümcesi bir içerir, CONTAINSTABLE, freetext, veya freetexttable sorgu, kırma, Doğan, eş anlamlılar ve stopword için sözcük işleme sorgu koşullarını kullanılan dili belirlemek için kullanılabilir.

[YUKARI]

Ayrıca bkz.

Başvuru

(Transact-sql) içerir

CONTAINSTABLE (Transact-sql)

Veri Türleri (Transact-SQL)

freetext (Transact-sql)

freetexttable (Transact-sql)

sp_fulltext_service (Transact-sql)

listelenecektirsys.fulltext_languagesKatalog (Transact-sql)

Kavramlar

Yapılandırmak ve arama filtrelerini yönetme

Yapılandırma ve sözcük ayırıcılarını ve sözcük köklerini arama yönetme