Aracılığıyla paylaş


sys.dm_fts_parser (Transact-SQL)

Uygulandıktan sonra son belirteçlere ayırma sonucunu döndürür bir verilen sözcük ayırıcı, Eş Anlamlılar, ve stoplist birleşimi Giriş bir sorgu dize .Belirtilen sorgu dizeiçin tam metin altyapısı çıkışını belirteçlere ayırma sonucunu eşdeğerdir.

sys.dm_fts_parserdinamik yönetim işlevikullanılır.

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, deyimlerin formlar, eşanlamlılar sözlüğü ve mantıksal işleçler ekleyebilirsiniz.

  • lcid
    Sözcük bölücü ayrıştırmak için kullanılacak dil tanıtıcısı (LCID) query_string.

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

    Bir stoplist bir veritabanı içinde benzersiz kimliğidir.Belirtilen tablo kullanımda tam metin dizini stoplist kimliği edinmek için sys.fulltext_indexes Katalog görünümü.

  • accent_sensitivity
    Boole değeri bu denetimleri tam metin araması arama/küçük harf duyarlı Aksan duyarlı olup.accent_sensitivityİş bit, ile aşağıdaki değerlerden biri:

    Değer

    Aksan duyarlılığı is…

    0

    Duyarlı

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

    1

    Hassas

    "Café" gibi sözcükler ve "cafe" farklı şekilde ele alınır.

    Not

    tam metin kataloğuiçin bu değer geçerli ayarlarını görüntülemek için aşağıdaki komutu çalıştırın Transact-SQLdeyim: 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österim, 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 sözcüğü ile ilgili için yararlı olduğu sys.dm_fts_index_keywords ve sys.dm_fts_index_keywords_by_document.

NotNot
Bir dosya ya da dataset sonuna gösteren özel bir karakter OxFF temsil.

group_id

int

Belirli bir terimi oluşturulan mantıksal Grup ayrım için kullanışlı olan bir tamsayı değeri içerir.Örneğin, 'Server AND DB OR FORMSOF(THESAURUS, DB)"' Aşağıdaki üreten group_id değerleri İngilizce:

group_id display_term
1Sunucu
2DB
3DB

phrase_id

int

Tam-metin gibi bileşik sözcüklerin alternatif formları sözcük ayırıcı tarafından verildiği durumlarda ayrım için kullanışlı olan bir tamsayı değeri içerir.Bazı durumlarda, bileşik sözcükler ('multi-million') varlığını ile alternatif formları sözcük ayırıcı tarafından verilir.Bu alternatif formlar (ifadeler) bazen ayrıştırılan gerekir.

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

phrase_id display_term
1 multi
1 million
2 multimillion

occurrence

int

Her terim ayrıştırma sonuç sırasını gösterir.Tümcecik için örneğin, ""SQL Server query processor" occurrenceaşağıdakileri içerecektir occurrence değerleri Tümcecikteki İ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ı tarafından biri verilen terimi özellikleri hakkında bilgi içerir:

Tam eşleşme

Etkisiz sözcük

Cümlenin sonuna

Paragrafın sonuna

Bölüm sonu

display_term

nvarchar(4000)

Kullanıcı tarafından okunabilen form anahtar sözcüğü içerir.Olarak tam metin dizini içeriğine erişmek için tasarlanmış işlevleri ile görüntülenen bu terim denormalization sınırlaması nedeniyle özgün terimine aynı olmayabilir.Ancak, özgün girişten tanımlamanıza yardımcı olması için kesin olmalıdır.

expansion_type

int

Verilen terim, biri genişlemesini doğası hakkında bilgiler içerir:

0 = Tek sözcük durum

2 = Deyimlerin genişletme

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

Örneğin, durum , eş anlamlılar sözlüğünü tanımlar çalışma bir genişleme göz önünde jog:

<expansion>

<sub>run</sub>

<sub>jog</sub>

</expansion>

Bu 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 tümcecik içinden belirli bir terimi üretilen veya ayrıştırıldı.Örneğin, sorguya ' "word breakers" AND stemmers' aşağıdaki üreten source_term değerleri İngilizce:

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

Açıklamalar

sys.dm_fts_parser sözdizimi ve tam metin yüklemler özellikleri gibi destekler CONTAINS ve freetextve işlevleri gibi CONTAINSTABLE ve freetexttable.

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

Sorgu dizeayrıştırdığınızda sys.dm_fts_parser kullanan harmanlama balı, sorgu dize olarak belirtmediğiniz sürece veritabanının Unicode.Bu nedenle, ü veya ç, gibi özel karakterler içeren bir Unicode olmayan dize çıktı, harmanlama veritabanı türüne bağlı olarak beklenmedik olabilir.dize içeren bir sorgu dize veritabanı harmanlamabağımsız olarak işlemek için önek N, yani N'QUERY_STRING'.

Daha fazla bilgi için bkz: "c.Özel karakterler içeren bir dize çıktısını görüntüleme " Bu konuda daha sonra.

Ne zaman kullan sys.dm_fts_parser

sys.dm_fts_parser hata 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 davranır anlamak için

    Bir sorgu beklenmeyen sonuçlardöndüğünde, olası bir neden sözcük ayırıcı ayrıştırma ve veri sonu yoludur.Kullanarak sys.dm_fts_parser, Keşif sonucu bir sözcük ayırıcı geçirdiği için tam metin dizini.Buna ek olarak, hangi koşulları tam metin dizini aranmaz stopwords olduğunu görebilirsiniz.Belirli bir dil tarafından belirtilen stoplist içinde olup üzerinde bağlıdır için bir terim bir stopword olup stoplist_id işlevbildirilen değer.

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

  • Belirli bir girdi sözcük kökü ayırıcı 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 formsof yan tümceiçeren sorgu CONTAINS veya CONTAINSTABLE belirterek ayrıştırma bulabilirsiniz:

    FORMSOF( INFLECTIONAL, query_term )
    

    sonuçlar , hangi koşulları için tam metin dizini geçirilen söyleyin.

  • Anlamak için 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 )
    

    Bu sorgu sonuçlar göstermek için Sorgu terimi sözcük ayırıcısı ve eş anlamlılar sözlüğü nasıl etkileşim.genişletme veya eş anlamlılar sözlüğü'nden değiştirmeler görmek ve gerçekten karşı tam metin dizini çıkarılan sonuç sorgu tanımlar.

    O Eğer kullanıcı sorunlara dikkat edin:

    FORMSOF( FREETEXT, query_term )
    

    Deyimlerin ve eşanlamlılar yetenekleri yerine otomatik olarak yönlendirilirsiniz.

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

İzinler

Üyelik gerektiren sysadminbelirtilen stoplistsabit 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 ise, İngilizce sözcük ayırıcısı kullanmasını ve hiçbir stoplist üzerinde aşağıdaki sorgu dizedöndürür:

The Microsoft business analysis

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

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

B.Stoplist süzme 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 ise, İngilizce sözcük ayırıcısı ve 77 Kimliğine sahip olan bir İngilizce stoplist üzerinde aşağıdaki sorgu dizekullanarak çıktıyı verir:

"The Microsoft business analysis" OR "MS revenue"

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

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

C.Özel karakterler içeren bir dize çıktısını görüntüleme

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

français

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

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