Aracılığıyla paylaş


sys.dm_fts_parser (Transact-sql)

Uygulandıktan sonra nihai tokenization sonucunu döndürür bir verilen sözcük ayırıcı, eş anlamlılar, ve stoplist birleşimi için bir sorgu dizesi girdi. Belirtilen sorgu dizesi için tam metin altyapısı çıkış tokenization sonucunu eşdeğerdir.

sys.dm_fts_parserdinamik yönetimi işlevdir.

Sözdizimi

sys.dm_fts_parser('query_string', lcid, stoplist_id, accent_sensitivity)

Bağımsız değişkenler

  • query_string
    Ayrıştırmak istediğiniz sorgu. query_stringbir dize zincir olabilir CONTAINS sözdizimi desteği. Örneğin, Inflectional formları, eşanlamlılar sözlüğü ve mantıksal işleçler ekleyebilirsiniz.

  • lcid
    Yerel ayar tanıtıcısı (LCID) ayrıştırmak için kullanılacak sözcük ayırıcı query_string.

  • stoplist_id
    Stoplist, tanımlanan sözcük ayırıcı olarak kullanılacak, varsa Kımlığı lcid. stoplist_idis int. 'null' belirtirseniz, hiçbir stoplist kullanılır. 0 Olarak belirtirseniz, sistem STOPLIST kullanılır.

    Bir veritabanı içinde benzersiz bir stoplist kimliğidir. Verilen tablo kullanmak bir tam metin dizini stoplist kimliği edinmek için içinsys.fulltext_indexesKatalog Katalog görünümü.

  • accent_sensitivity
    Değeri tam metin arama duyarlı ve aksan duyarlı olup olmadığını denetler. accent_sensitivityise bit, ile aşağıdaki değerlerden biri:

    Değer

    Aksan duyarlılığı olduğunu...

    0

    Büyük küçük harf duyarlı

    "Cafe" gibi sözcükler ve "cafe" aynı şekilde davranılır.

    1

    Hassas

    "Cafe" gibi sözcükler ve "cafe" farklı değerlendirilir.

    [!NOT]

    Tam metin kataloğu için bu değer geçerli ayarlarını görüntülemek için aşağıdaki komutu çalıştırın Transact-SQLdeyimi: SELECT fulltextcatalogproperty('catalog_name', 'AccentSensitivity');.

Dönen Tablo

Sütun adı

Veri türü

Açıklama

keyword

varbinary(128)

Sözcük ayırıcı tarafından döndürülen belirli anahtar sözcük onaltılık gösterimi. Bu gösterimi anahtar sözcüğü tam metin dizini depolamak için kullanılır. Bu değer okunabilir değil, ancak bir tam metin dizini içeriği gibi döndüren diğer dinamik yönetimi görünümleri tarafından döndürülen çıkış için belirli bir anahtar kelime ile ilgili yararlı olduğu sys.dm_fts_index_keywords ve sys.dm_fts_index_keywords_by_documentbir.

NotNot
Bir dosya veya veri kümesi sonuna gösteren özel bir karakter OxFF temsil eder.

group_id

int

Belirli bir dönem oluşturulduğu mantıksal Grup ayırt için yararlı bir tamsayı değeri içerir. Örneğin, 'Server AND DB OR FORMSOF(THESAURUS, DB)"' Aşağıdaki üreten group_iddeğerleri İngilizce:

group_id display_term
1Sunucu
2DB
3DB

phrase_id

int

Sözcükler, tam-metin gibi alternatif formları sözcük ayırıcı tarafından verildiği durumlarda ayırt için yararlı bir tamsayı değeri içerir. Bazen, sözcükler ('multi-million') varlığı ile alternatif formlar sözcük ayırıcı tarafından verilir. Bu alternatif formlar (ifadeler) bazen farklı gerekir.

Örneğin, 'multi-million' Aşağıdaki üreten phrase_iddeğerleri İngilizce:

phrase_id display_term
1 multi
1 million
2 multimillion

occurrence

int

Her dönem ayrıştırma sonuç sırasını gösterir. Örneğin, ifade için "SQL Server query processor'' occurrenceaşağıdakileri içerecektir occurrencedeğerleri ifade, İngilizce terimler için:

oluşumu display_term
1 SQL
2 Server
3 query
4 processor

special_term

nvarchar(4000)

Sözcük ayırıcısı bir tanzim edilen dönem özellikleri hakkında bilgi içerir:

Tam eşleşme

Sözcük

Cümlenin sonuna

Paragrafın sonuna

Bölüm sonu

display_term

nvarchar(4000)

Anahtar sözcük okunabilen form içerir. Olarak tam metin dizini içeriğine erişmek için tasarlanmış fonksiyonlar ile görüntülenen bu terim denormalization sınırlama nedeniyle özgün terim aynı olmayabilir. Ancak, özgün girdisini tanımlamanıza yardımcı olması için kesin olmalıdır.

expansion_type

int

Belirli bir dönem, bir şeylerin doğası hakkında bilgiler içerir:

0 = Tek kelime durumda

2 = Inflectional genişletme

4 = Eş anlamlılar genişletme/değiştirme

Örneğin, bir durumda hangi eş anlamlılar sözlüğünü tanımlar Çalıştır bir genişleme düşünün jog:

<expansion>

<sub>run</sub>

<sub>jog</sub>

</expansion>

Terim FORMSOF (FREETEXT, run)aşağıdaki çıktıyı oluşturur:

runwith expansion_type=0

runswith expansion_type=2

runningwith expansion_type=2

ranwith expansion_type=2

jogwith expansion_type=4

source_term

nvarchar(4000)

Terim veya içinden belirli bir dönem oluşturulan veya çözümlenen ifade. Örneğin, sorguya ' " word breakers" AND stemmers' birini üreten source_termdeğerleri İngilizce:

source_term display_term
sözcük ayırıcılarısözcük
sözcük ayırıcılarıkesiciler
sözcük köklerinisözcük köklerini

Açıklamalar

sys.dm_fts_parsersözdizimi ve tam metin yüklemler özellikleri gibi destekler CONTAINS ve freetextve işlevler gibi CONTAINSTABLE ve freetexttable.

Unicode özel karakterler ayrıştırma için kullanma

Bir sorgu dizesi ayrıştırdığınızda sys.dm_fts_parsersorgu dizesini Unicode olarak belirtmediğiniz sürece balı, veritabanı harmanlama kullanır. Bu nedenle, için bir Unicode dize ya da ç, ü gibi özel karakterler içeren çıktı, veritabanı harmanlama bağlı beklenmedik olabilir. Sorgu dizesi veritabanı harmanlamayı bağımsız olarak işlemek için dizeyle öneki N, yani N'query_string'.

Daha fazla bilgi için bkz: "c. Bir dize çıktısını içeren bu özel karakterleri görüntüleme " Bu konudaki.

Ne zaman kullan sys.dm_fts_parser

sys.dm_fts_parserhata ayıklama amacıyla çok güçlü olabilir. Bazı önemli kullanım senaryoları şunları içerir:

  • Verilen sözcük ayırıcısı verilen giriş nasıl ele aldığını anlamak için

    Sorgu beklenmeyen sonuçlar verdiğinde, olası bir neden sözcük ayırıcısı ayrıştırma ve verileri kırma yoludur. Kullanarak sys.dm_fts_parser, full-text Index sözcük ayırıcısı gönderdiği sonucu keşfedin. Ayrıca, size hangi şartlar da tam metin dizininde arama değil stopwords görebilirsiniz. Belirli bir dil içinde belirtilen stoplist olup üzerinde bağlıdır için bir terim bir stopword olup stoplist_idfonksiyonu olarak bildirilen değer.

    Sözcük ayırıcısı Aksan duyarlılığı bilgilerini aklınızda olan giriş nasıl ayrıştırmaz görmek kullanıcı sağlayacak Aksan duyarlılığı bayrağı da unutmayın.

  • Sözcük kökü ayırıcı üzerinde belirli bir giriş nasıl çalıştığını anlamak için

    Nasıl sözcük ayırıcısı ve sözcük kökü ayırıcı sorgu terimi ve kendi stemming formları aşağıdaki BİÇİMLERİYLE yan tümcesi içeren bir içerir veya CONTAINSTABLE sorgu belirterek ayrıştırma bulabilirsiniz:

    FORMSOF( INFLECTIONAL, query_term )
    
    FORMSOF( INFLECTIONAL, query_term )
    

    Sonuçlar tam metin dizin için hangi şartlar geçirilen söyleyin.

  • Anlamaya nasıl eş anlamlılar sözlüğü genişletir veya giriş bölümünü veya tümünü değiştirir

    Ayrıca belirtebilirsiniz:

    FORMSOF( THESAURUS, query_term )
    
    FORMSOF( THESAURUS, query_term )
    

    Bu sorgunun sonuçlarını, sözcük ayırıcısı ve eş anlamlılar sözlüğü için sorgu terimi etkileşimini gösterir. genişletme veya yedek gelen eşanlamlılar ve aslında tam metin dizini karşı çıkarılan sonuç sorgu tanımlar.

    Eğer kullanıcı sorunlara dikkat edin:

    FORMSOF( FREETEXT, query_term )
    
    FORMSOF( FREETEXT, query_term )
    

    Inflectional ve eşanlamlılar yetenekleri otomatik olarak yer alacaktır.

Önceki kullanım senaryoları, ek olarak sys.dm_fts_parserönemli ölçüde anlamak ve tam metin sorgu ile birçok sorun giderme yardımcı olabilir.

İzinler

Üyelik sysadmin belirtilen stoplist sabit sunucu rolü ve erişim hakları.

Örnekler

A.Verilen sözcük ayırıcı bir anahtar sözcük veya tümcecik çıktısını görüntüleme

Aşağıdaki örnek çıkış olan LCID 1033, dir İngilizce sözcük ayırıcısı kullanarak ve hiçbir stoplist üzerinde aşağıdaki sorgu dizesini döndürür:

The Microsoft business analysis

Aksan duyarlılığı devre dışıdır.

SELECT * FROM sys.dm_fts_parser (' "The Microsoft business analysis" ', 1033, 0, 0)

SELECT * FROM sys.dm_fts_parser (' "The Microsoft business analysis" ', 1033, 0, 0)

B.Filtreleme STOPLIST bağlamında verilen sözcük ayırıcısı çıktısını görüntüleme

Aşağıdaki örnek olan LCID 1033, dir İngilizce sözcük ayırıcısı ve Kimliğine sahip: 77, bir İngilizce stoplist üzerinde aşağıdaki sorgu dizesini kullanarak çıktıyı verir:

"The Microsoft business analysis" OR "MS revenue"

Aksan duyarlılığı devre dışıdır.

SELECT * FROM sys.dm_fts_parser (' "The Microsoft business analysis"  OR " MS revenue" ', 1033, 77, 0)

SELECT * FROM sys.dm_fts_parser (' "The Microsoft business analysis"  OR " MS revenue" ', 1033, 77, 0)

C.Bir dize çıktısını içeren bu özel karakterleri görüntüleme

Aşağıdaki örnek, aşağıdaki Fransızca dizesini ayrıştırmak için Unicode kullanır:

français

Örneğin Fransızca dil LCID belirtir 1036ve kullanıcı tanımlı bir stoplist Kımlığı 5. Aksan duyarlılığı etkinleştirilir.

SELECT * FROM sys.dm_fts_parser(N'français', 1036, 5, 1);

SELECT * FROM sys.dm_fts_parser(N'français', 1036, 5, 1);

Ayrıca bkz.

Başvuru

Tam metin arama ve semantik arama dinamik yönetimi görünümler ve işlevler (Transact-sql)

Kavramlar

Tam metin araması (SQL Server)

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

Yapılandırmak ve eş anlamlılar dosyaları için tam metin araması yönetme

Yapılandırma ve Stopwords ve Stoplists için tam metin araması yönetme

Tam metin arama sorgusuyla

Tam metin arama sorgusuyla

Securables