sys.dm_fts_parser (Transact-SQL)
Uygulandıktan sonra son belirteçlere ayırma sonucu verir bir verilen sözcük ayırıcısı, Eş anlamlılar sözlüğü, and stoplist birleşim sorgusuna dize giriş.Belirtilen sorgu için tam metin in çıkış belirteçlere ayırma sonucu eşdeğerdir dize.
sys.dm_fts_parser dinamik yönetimi bir işlevdir.
sys.dm_fts_parser('query_string', lcid, stoplist_id, accent_sensitivity)
Bağımsız değişkenler
query_string
The query that you want to parse.query_string can be a string chain that CONTAINS syntax support.Örneğin, inflectional formları, bir eş anlamlılar sözlüğü ve mantıksal işleçleri de içerebilir.lcid
Yerel ayar tanıtıcısı (LCID) ayrıştırmak için kullanılacak sözcük ayırıcısı query_string.stoplist_id
ID of the stoplist, if any, to be used by the word breaker identified by lcid.stoplist_id is 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.Bir tam metin dizini bir verilen tablosu kullanımda stoplist KIMLIĞINI elde etmek için sys.fulltext_indexes kataloğunu görüntüleyin.
accent_sensitivity
Boolean value that controls whether full-text search is sensitive or insensitive to diacritics.accent_sensitivity is bit, with one of the following values:Değer
Aksan duyarlılığı is…
0
Büyük küçük harf duyarlı
"Café" ve "cafe" gibi sözcükler aynı kabul edilir.
1
Duyarlı
"Café" ve "cafe" gibi sözcükler, farklı değerlendirilir.
Not
Bu değeri için bir tam metin kataloğu geçerli ayarlarını görüntülemek için , aşağıdaki çalıştırın Transact-SQL Deyim: SELECT fulltextcatalogproperty('catalog_name', 'AccentSensitivity');.
Dönen Tablo
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
anahtar sözcük |
varbinary(128) |
Bir sözcük ayırıcı tarafından döndürülen belirli bir anahtar onaltılı gösterimi.Bu gösterim, anahtar sözcüğü tam metin dizininde depolamak için kullanılır.Bu değer, okunabilir değil, ancak bir tam metin dizin içeriği gibi döndüren diğer dinamik yönetimi görünümleri çıktı için belirli bir anahtar sözcük döndürdü ilgili kullanışlıdır sys.dm_fts_index_keywords and sys.dm_fts_index_keywords_by_document.
Note:
OxFF sonuna bir dosya veya dataset gösteren özel (special) karakteri temsil eder.
|
group_id |
int |
Belirli bir terim oluşturulan mantıksal bir grubundan differentiating için kullanışlı bir tamsayı içerir.Örneğin, 'Server AND DB OR FORMSOF(THESAURUS, DB)"' aşağıdaki group_id değerleri ingilizce olarak oluşturur:
group_id display_term
1Sunucu
2db
3db
|
phrase_id |
int |
Bileşik sözcükleri, tam metin gibi diğer formlara sözcük ayırıcısı verildiği durumlarda differentiating için kullanışlı bir tamsayı içerir.Bazı durumlarda, bileşik sözcükleri ('multi-million') varlığını ile diğer formları, sözcük ayırıcısı verilir.Diğer formlar (ifadeler), bazen tanır gerekir. Örneğin, 'multi-million' aşağıdaki phrase_id değerleri ingilizce olarak oluşturur:
phrase_id display_term
1 multi
1 million
2 multimillion
|
oluşumu |
int |
Her terim ayrıştırma sonuç sırasını gösterir.Örneğin, tümcecik için"SQL Server query processor"oluşumu ingilizce Tümcecikteki şartlarıyla ilgili oluşumu aşağıdaki değerleri içerebilir:
oluşumu display_term
1 SQL
2 Server
3 query
4 processor
|
special_term |
nvarchar(8000) |
Sözcük ayırıcı, aşağıdakilerden birini verilen terimi özellikleri hakkında bilgi içerir: Tam eşleşme Etkisiz sözcük Tümce sonuna Paragrafın sonuna Bölüm sonu |
display_term |
nvarchar(8000) |
Anahtar sözcüğü okunabilir form içerir.Olarak tam metin dizini içeriğini erişmek için tasarlanmış işlevleriyle görüntülenen bu terim denormalization sınırlaması nedeniyle özgün terimine aynı olmayabilir.Ancak, özgün girdiden tanıyabilmesine yardımcı olmak için kesin olmalıdır. |
expansion_type |
int |
Belirli terim, birini, genişletme yapısı hakkında bilgi içerir: 0 Tek bir sözcüğü durum = 2 Inflectional genişletme = 4 Eş anlamlıları genişletme/değiştirme = Örneğin, bir genişletme çalıştırmak, eş anlamlılar sözlüğünü tanımlayan bir durum göz önünde bulundurun. jog: <expansion> <sub>run</sub> <sub>jog</sub> </expansion> Terimi FORMSOF (FREETEXT, run) Aşağıdaki çıktıyı oluşturur: run ile expansion_type = 0 runs ile expansion_type = 2 running ile expansion_type = 2 ran ile expansion_type = 2 jog ile expansion_type = 4 |
source_term |
nvarchar(8000) |
Terim veya, belirli bir terim oluşturulan ayrıştırıldı veya deyim.Örneğin, bir sorguya ' "word breakers" AND stemmers' Aşağıdaki source_term değerleri ingilizce olarak oluşturur:
source_term display_term
sözcük ayırıcılarınısözcük
sözcük ayırıcılarınıAyırıcılar
sözcük köklerinisözcük köklerini
|
Remarks
sys.dm_fts_parser gibi tam metin yüklemler özelliklerinin ve sözdizimini destekler.İÇERİR and freetextve gibi işlevlericontainstable and freetexttable.
Unicode özel karakterler ayrıştırma için kullanma
Sorguda hangi koşullarda ayrıştırma dize, sys.dm_fts_parser uses the harmanlama sorgu belirtmediğiniz sürece için bağlı olduğunuz veritabanının dize olarakUnicode.Bu nedenle, özel karakterler (ç, ya da ü içeren bir Unicode dizesi için çıktı, harmanlama veritabanının türüne bağlı olarak beklenmeyen olabilir.Bir sorgu dizesi, veritabanı harmanlama bağımsız olarak işlemek için , dize ile önek. N, diğer bir deyişle, N'QUERY_STRING'.
Daha fazla bilgi için bkz: C"Bir dize çıkışını bu içeren özel karakterler, bu konunun ilerisinde görüntüleme".
Ne zaman kullanım 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:
Nasıl bir belirli bir sözcük ayırıcısı, belirli bir girişi işler anlamak için
Sorguda sonuçlar döndürdüğünde, olası bir nedeni sözcük ayırıcısı ayrıştırma ve veri dökümü yoludur.Sys.dm_fts_parser kullanarak, bir sözcük ayırıcısı için tam metin dizini geçirmeden sonucu keşfedin.Buna ek olarak, hangi koşulları, tam metin dizininde arama stopwords olduğunu görebilirsiniz.Belirtilen stoplist içinde olup belirli bir dil bağlıdır için bir terimdir bir stopword olup stoplist_id işlev olarak değeri.
Aynı zamanda, kullanıcının, sözcük ayırıcısı, aksan duyarlılığı bilgilerini aklınızda bulunması giriş nasıl ayrıştırmaz görmesini sağlayacak Aksan duyarlılığı bayrağı unutmayın.
Sözcük kökü ayırıcı, belirli bir girişte 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 stemming formları aşağıdaki BIÇIMLERIYLE yan tümce içeren sorgu CONTAINS veya CONTAINSTABLE belirterek ayrıştırma dışında bulabilirsiniz:
FORMSOF( INFLECTIONAL, query_term )
sonuçlar, hangi koşulları için tam metin dizini geçirilir söyleyin.
Eş anlamlılar sözlüğünü nasıl genişletir veya giriş bölümünü veya tümünü değiştirir anlamak için
Ayrıca belirtebilirsiniz:
FORMSOF( THESAURUS, query_term )
The results of this query show how the word breaker and thesaurus interact for the query term.you can see the expansion or replacements from the thesaurus and identify the resulting query that is actually being issued against the full-text index.
Bu ise, kullanıcı sorunları dikkat edin:
FORMSOF( FREETEXT, query_term )
The inflectional ve eşanlamlılar özellikleri otomatik olarak gerçekleşir.
Ek olarak önceki kullanım senaryoları, sys.dm_fts_parser anlamak ve tam metin sorgusu ile birçok diğer sorunları gidermek için önemli ölçüde yardımcı olabilir.
İzinler
Üyelik gerektirir sysadmin sunucu rolünü ve erişim hakları belirtilen stoplist sabit.
Örnekler
C.Bir anahtar sözcük veya tümcecik bir belirli bir sözcük ayırıcısı çıktısını görüntüleme
Aşağıdaki örnek çıkış, LCID 1055'tir, ingilizce sözcük ayırıcı, kullanmasını ve hiçbir stoplist aşağıdaki sorguyu verir dize:
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 işlemi bağlamında bir belirli bir sözcük ayırıcısı çıktısını görüntüleme
Aşağıdaki örnek, aşağıdaki sorguyu kullanarak, LCID 1055'tir, ingilizce sözcük ayırıcı ve 77, ID olan, bir ingilizce stoplist çıktı verir dize:
"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, Fransız aşağıdaki dizeyi ayrıştırmak için Unicode kullanır:
français
Örneğin, Fransızca Dil LCID belirtir. 1036ve kullanıcı tanımlı bir stoplist KIMLIĞI 5. Aksan duyarlılığı etkinleştirildi.
SELECT * FROM sys.dm_fts_parser(N'français', 1036, 5, 1);
See Also