Tam metin araması (SQL Server)

Full-Text Search SQL Serverkullanıcıların ve uygulamaların karakter tabanlı veri karşı tam metin sorguları çalıştırmak sağlar SQL Servertabloları. Bir tablo tam metin sorgular çalıştırmadan önce veritabanı yöneticisi tablo üzerinde bir tam metin dizini oluşturmanız gerekir. Tam metin dizini, tablo için bir veya daha fazla karakter tabanlı sütun içerir. Bu sütunlar aşağıdaki veri türlerinden herhangi biri: char, varchar, nchar, nvarchar, text, ntext, image, xml, ya varbinary(max)ve FILESTREAM. Her tam metin dizin tablo bir veya daha fazla sütun dizinler ve her sütun belirli bir dil kullanabilirsiniz.

Tam metin sorguları, kelime ve ifadeler İngilizce veya Japonca gibi belirli bir dilin kurallarına göre faaliyet tam metin dizinleri metin veriler karşısında dilsel bir arama yapmak. Tam metin sorguları, basit sözcükleri ve tümcecikleri veya bir sözcük veya tümcecik birden fazla form dahil edebilirsiniz. En az bir eşleşme içeren tüm belgeleri tam metin sorgu döndürür (olarak da bilinen bir vurmak). Eşleşme hedef belge tam metin sorgu belirtilen tüm şartları içerdiğinde oluşur ve herhangi bir diğer arama gibi koşullar arasındaki eşleştirme koşullarını karşılar.

[!NOT]

Tam metin arama, bir isteğe bağlı bileşenidir SQL Serververitabanı motoru. Daha fazla bilgi için, bkz. SQL Server yükleme 2012.

Bu Konuda

  • Tam metin arama ile ne yapabilirim?

    • Tam metin arama sorguları

    • Karşılaştırma gibi Full-Text Search

  • Bileşenleri ve tam metin arama mimarisi

    • sql sunucu işlemi

    • Filtre arka plan programı ana bilgisayar işlemi

  • Tam metin arama işleme

    • Tam metin dizin oluşturma işlemi

    • Tam metin sorgu işlemi

  • Dile ait bileşenleri ve dil desteği tam metin arama

  • ilişkili Görevler

  • İlişkili İçerik

Tam metin arama ile ne yapabilirim?

Tam metin arama geniş bir e-iş gibi iş senaryoları için geçerlidir — web sitesindeki; öğeler aranıyor kanun şirketleri-yasal-veri deposu; case histories aranıyor ya da insan kaynakları departmanları — iş tanımları ile saklı Özgeçmişler eşleştirme. Temel yönetim ve geliştirme görevleri tam metin arama iş senaryoları bakılmaksızın eşdeğerdir. Ancak, verilen iş senaryosunda, tam metin dizini ve sorgu iş hedeflerinize ulaşmak için honlanmış. İçin bir e-iş maximizing performans sonuçları sıralamasında daha önemli olabilir, örneğin, (kaç varolan maç aslında bir tam metin sorgu tarafından döndürülen) doğruluğunu veya birden çok dili destekleyen hatırlayın. Bir Hukuk Bürosu için olası her isabet dönen (Toplam hatırlama bilgi) en önemli dikkate olabilir.

[YUKARI]

Tam metin arama sorguları

Sütun için tam metin dizini ekledikten sonra kullanıcıların ve uygulamaların tam metin sorguları sütunlarındaki metin çalıştırabilirsiniz. Bu sorguları herhangi biri için arama yapabilirsiniz:

  • Bir veya daha fazla belirli sözcük veya tümcecikleri (Basit terim)

  • Bir sözcük veya deyim kelime ile başladığı belirtilen metin (önek terimi)

  • Inflectional formları belirli bir sözcüğün (üretimi terimi)

  • Bir sözcük veya tümcecik başka bir sözcük veya tümcecik yakındır (yakınlık terimi)

  • Belirli bir sözcüğün eşanlamlı formları (eş anlamlılar)

  • Kelimeleri veya öbekleri ağırlıklı değerleri kullanarak (Ağırlıklı terimi)

Tam metin sorgular büyük küçük harf duyarlı değildir. Örneğin, "Alüminyum" için arama ya da "alüminyum" aynı sonuçları döndürür.

Tam metin sorguları kullanan küçük bir dizi Transact-SQLyüklemler (CONTAINS ve freetext) ve işlevleri (CONTAINSTABLE ve freetexttable). Ancak, verilen iş senaryosu ara hedefleri tam metin sorguları yapısını etkiler. Örneğin:

  • e-iş — bir Web sitesinde bir ürün arama:

    SELECT product_id FROM products WHERE CONTAINS(product_description, ”Snap Happy 100EZ” OR FORMSOF(THESAURUS,’Snap Happy’) OR ‘100EZ’) AND product_cost<200 …
    
  • İşe alma senaryo — ile çalışma deneyimine sahip iş adayları aranıyor SQL Server:

    SELECT candidate_name,SSN FROM candidates WHERE CONTAINS(candidate_resume,”SQL Server”) AND candidate_division =DBA
    

Daha fazla bilgi için, bkz. Tam metin arama sorgusuyla.

[YUKARI]

Tam metin arama, farklı olarak gibi Transact-SQL yüklemi sadece karakter modelleri üzerinde çalışıyor. Ayrıca, biçimlendirilmiş ikili veri sorgulamak için LIKE kullanamazsınız. Ayrıca, yapılandırılmamış metin veri büyük miktarda gibi bir sorgu aynı verileri eşdeğer bir tam metin sorgu yavaştır. Metin veri satırları milyonlarca gibi bir sorgu dönmek için dakika alabilir; Oysa bir tam metin sorgu yalnızca birkaç saniye alabilir ya da daha az karşı aynı veri türüne bağlı olarak döndürülen satır sayısı.

[YUKARI]

Bileşenleri ve tam metin arama mimarisi

Tam metin arama mimarisi aşağıdaki işlemden oluşur:

  • SQL ServerSüreci (sqlservr.exe).

  • Filtre arka plan programı ana bilgisayar işlemi (fdhost.exe).

    Güvenlik nedenleriyle, filtreleri filtre arka plan programı ana adı verilen ayrı işlemler tarafından yüklenir. Fdhost.exe süreçleri fdhost Başlatıcısı hizmeti (MSSQLFDLauncher) tarafından oluşturulur ve fdhost Başlatıcısı hizmeti hesabının güvenlik kimlik bilgileri altında çalışır. Bu nedenle, fdhost Başlatıcısı hizmeti tam metin dizin oluşturma ve çalışmak için tam metin sorgulama için çalışmalıdır. Bu hizmet için hizmet hesabını ayarlama hakkında daha fazla bilgi için bkz: Tam metin filtre Daemon Başlatıcısı için hizmet hesabını ayarlama.

Bu iki işlem, tam metin arama mimarisi bileşenleri içerir. Bu bileşenler ve bunların ilişkilerini aşağıda özetlenmiştir. Bileşenler aşağıdaki çizimde sonra açıklanmıştır.

tam metin arama mimarisi

[YUKARI]

sql sunucu işlemi

SQL Serverİşlemi tam metin arama için aşağıdaki bileşenleri kullanır:

  • Kullanıcı tablolar. Bu tablolar verilerin tam metin dizini içeriyor.

  • Tam metin Toplayıcı. Tam metin Toplayıcı tam metin gezinme konuları ile çalışır. Planlama ve tam metin dizinleri nüfus sürüş ve tam metin kataloglar izleme sorumludur.

  • Eş anlamlılar dosyaları. Bu dosyaların eşanlamlıları arama terimleri içerir. Daha fazla bilgi için, bkz. Yapılandırmak ve eş anlamlılar dosyaları için tam metin araması yönetme.

  • Stoplist nesneleri. Stoplist nesneleri arama için yararlı olmayan ortak sözcüklerin listesini içerir. Daha fazla bilgi için, bkz. Yapılandırma ve Stopwords ve Stoplists için tam metin araması yönetme.

  • SQL Server Sorgu işlemci. Sorgu işlemci derler ve sql sorguları yürütür. sql sorgu tam metin arama sorgusu içeriyorsa, sorgu derleme sırasında hem yürütme sırasında tam metin altyapısı için gönderilir. Sorgu sonucu tam metin dizini karşı eşleştirilir.

  • Tam metin altyapısı. Tam metin altyapısı SQL Serversorgu işlemci ile tam entegre. Tam metin altyapısı derler ve tam metin sorguları yürütür. Sorgu yürütme bir parçası olarak, tam metin altyapısı eş anlamlılar ve stoplist giriş alabilirsiniz.

  • Dizin yazan (Dizin Oluşturucu). Dizin yazan dizinlenmiş belirteçleri depolamak için kullanılan yapısı oluşturur.

  • Filtre arka plan programı Yöneticisi. Filtre arka plan programı Yöneticisi, tam metin altyapısı filtre arka plan programı ana bilgisayar durumunu izlemek için sorumludur.

[YUKARI]

Filtre arka plan programı ana bilgisayar işlemi

Filtre arka plan programı ana bilgisayar tam metin altyapısı tarafından başlatılan bir süreçtir. Kırılma ve sorgu giriş doğan kelime yanı sıra, erişme, filtreleme ve tablolardan verileri kırma sözcük sorumlu aşağıdaki tam metin arama bileşenleri çalıştırır.

Filtre arka plan programı ana bileşenleri aşağıdaki gibidir:

  • Protokol işleyici. Bu bileşen diğer işlemler bellek verileri çeker ve veritabanı kullanıcı tablosundaki verilere erişiyor. Sorumluluklarından biri veri sütunları tam metin olarak dizin ve filtre uygulanacak filtre arka plan programı ana ve sözcük ayırıcısı olarak geçmek toplamaktır.

  • Filtreler. Önce bir belgesindeki verilerin tam metin filtre endeksli, verileri de dahil olmak üzere bazı veri türleri gerektiren varbinary, varbinary(max), image, ya xmlsütun. Belirli bir belge için kullanılan filtre belge türüne bağlıdır. Örneğin, Microsoft Word (.doc) belgeleri, Microsoft Excel (.xls) belgeleri ve xml (.xml) belgeler için farklı filtreler kullanılır. Sonra filtre, katıştırılmış biçimlendirme ve metin ve, potansiyel hakkında bilgi metnin konumunu koruyarak kaldırılması belgeden metin parçalarını ayıklar. Metinsel bilgi akışı sonucudur. Daha fazla bilgi için, bkz. Yapılandırmak ve arama filtrelerini yönetme.

  • Word ayırıcılarını ve sözcük köklerini. Sözcük ayırıcı sözcük sınırları belirli bir dil sözlü kurallara göre bulduğu dile özgü bileşenidir (kırma sözcük). Her sözcük ayırıcısı fiilleri conjugates ve Inflectional açılımları gerçekleştiren bir dile özgü sözcük kökü ayırıcı bileşeni ile ilişkilidir. Filtre arka plan programı ana bilgisayar, dizin oluşturma zaman verilen tablo sütun metinsel veri dilbilimsel çözümlemesi için bir sözcük ayırıcısı ve sözcük kökü ayırıcı kullanır. Tam metin dizin tablo sütunu ile ilişkili dili hangi sözcük ayırıcısı ve sözcük kökü ayırıcı sütunun dizin oluşturma için kullanılacağını belirler. Daha fazla bilgi için, bkz. Yapılandırma ve sözcük ayırıcılarını ve sözcük köklerini arama yönetme.

[YUKARI]

Tam metin arama işleme

Full-text search, tam metin alt yapısı tarafından desteklenmektedir. Tam metin altyapısı iki rolleri vardır: destek dizin oluşturma ve sorgulama desteği.

Tam metin dizin oluşturma işlemi

Bir tam metin popülasyonu (tarama olarak da bilinir) başlatıldığında, tam metin altyapısı büyük toplu verileri belleğe iter ve filtre arka plan programı ana bildirir. Ana bilgisayar filtreleri ve word veri kesmiş ve ters sözcük listelerini dönüştürülen veri dönüştürür. Tam metin arama sonra sözcük listelerini dönüştürülmüş verileri çeker, stopwords kaldırmak için veri işleme ve sözcük listelerini bir toplu iş için bir veya daha fazla ters dizinler devam ederse.

Depolanan veri dizin oluştururken bir varbinary(max)veya imagesütun, filtre uygulayan, IFilter arayüzü, özler metin verileri belirtilen dosya biçimini temel alan (örneğin, MicrosoftWord). Bazı durumlarda filtre bileşenleri gerektirir varbinary(max), ya imageverileri belleğe itti yerine filterdata klasörüne yazılır.

İşleme bir parçası olarak, toplanan metin verilerini metin bireysel belirteçleri veya anahtar sözcükleri ayırmak için sözcük ayırıcı üzerinden geçirilir. Tokenization için kullanılan dili sütun düzeyinde belirtilen veya içinde tanımlanan varbinary(max), image, ya xmlverilere göre filtre bileşeni.

Ek işlem stopwords kaldırmak ve tam metin dizini veya dizini parça depolanır önce belirteçleri Normalleştir gerçekleştirilebilir.

Nüfusu tamamlandığında son mektup birleştirme işlemi bir ana tam metin dizini birlikte dizin parçaları birleştiren tetiklenir. Bu Gelişmiş Sorgu performans beri yalnızca ana dizin dizin parçaları bir dizi yerine sorgulanacak ihtiyacı ve daha iyi istatistikler puanlama ilgi sıralaması için kullanılabilir olur.

[YUKARI]

Tam metin sorgu işlemi

Sorgu işlemci tam metin altyapısı işleme sorgu tam metin kısımlarını geçirir. Doğan, kırma sözcük ve, isteğe bağlı olarak, eş anlamlılar açılımları, tam metin altyapısı gerçekleştirir ve stopword (etkisiz sözcük) işleme. Sonra sorgu tam metin kısımlarını sql operatörleri, öncelikle olarak akış tablo değerli işlevler (STVFs) şeklinde gösterilir. Sorgu yürütme sırasında doğru sonuçlar almak için ters dizini için bu STVFs erişim. Ya da istemciye bu noktada döndürülür veya daha fazla istemciye döndürülen önce işlenir.

[YUKARI]

Dile ait bileşenleri ve dil desteği tam metin arama

Tam metin arama, İngilizce, İspanyolca, Çince, Japonca, Arapça, Bengalce ve Hintçe gibi neredeyse 50 çeşitli dilleri destekler. Desteklenen tam metin dillerin tam listesi için bkz: listelenecektirsys.fulltext_languagesKatalog (Transact-sql). Her tam metin dizini içinde bulunan sütunları tam metin arama tarafından desteklenen dil eşittir bir Microsoft Windows yerel ayar tanıtıcısı (LCID) ilişkilendirilir. Örneğin, ABD İngilizce için LCID 1033 eşittir ve LCID 2057 British İngilizce'ye eşittir. Her tam metin dili, desteklenen SQL Server, dizin oluşturma ve sorgulama bu dilde depolanan tam metin verileri destekleyen dile ait bileşenleri sağlar.

Dile özgü bileşenler arasında şunlar yer alır:

  • Word ayırıcılarını ve sözcük köklerini. Sözcük ayırıcı sözcük sınırları belirli bir dil sözlü kurallara göre bulur (kırma sözcük). Her sözcük ayırıcısı fiiller için aynı dili conjugates bir sözcük kökü ayırıcı ile ilişkilidir. Daha fazla bilgi için, bkz. Yapılandırma ve sözcük ayırıcılarını ve sözcük köklerini arama yönetme.

  • Stoplists. Temel set stopwords (parazit kelime olarak da bilinir) içeren bir sistem stoplist sağlanmıştır. A stopword bir kelime arama yardım etmez ve tam metin sorgular tarafından yoksayılır. Örneğin, "a", "ve", "olduğu" gibi İngilizce Yerel sözcükleri ve "" için stopwords kabul edilir. Genellikle, bir veya daha fazla eş anlamlılar dosyaları ve stoplists yapılandırmanız gerekecektir. Daha fazla bilgi için, bkz. Yapılandırma ve Stopwords ve Stoplists için tam metin araması yönetme.

  • Eş anlamlılar dosyaları. SQL Serverda her tam metin dilin eş anlamlılar dosyası yanı sıra genel eş anlamlılar dosyası yükler. Yüklü eş anlamlılar dosyaları aslında boş, ancak bunları belirli bir dil veya iş senaryosu için eş anlamlı tanımlamak için düzenleyebilirsiniz. Tam metin veriler uygun bir eş anlamlılar geliştirerek, etkili verilerin tam metin sorguları kapsamını genişletebilirsiniz. Daha fazla bilgi için, bkz. Yapılandırmak ve eş anlamlılar dosyaları için tam metin araması yönetme.

  • Filtreler (iFilters). Belgeye dizin oluşturma bir varbinary(max), image, ya xmlveri türü sütun fazladan işlem gerçekleştirmek için bir filtre gerektirir. Filtre belge türüne (.doc, .pdf, .xls, .xml ve benzeri) olmalıdır. Daha fazla bilgi için, bkz. Yapılandırmak ve arama filtrelerini yönetme.

Word ayırıcılarını (ve sözcük köklerini) ve filtreleri filtre arka plan programı ana bilgisayar işlemi (fdhost.exe) içinde.

[YUKARI]

ilişkili Görevler

[YUKARI]

İlişkili İçerik

[YUKARI]