متد sys.dm_fts_index_keywords
این متد محتوای full-text index یک جدول را باز میگرداند. از آن میتوان برای موارد ذیل استفاده کرد:
- آیا واژه کلیدی خاصی جزو full-text index است؟
- چه تعداد رکورد دارای واژهی کلیدی خاصی هستند؟
- متداولترین واژههای کلیدی موجود در ایندکس کدامند؟
- کدام واژه را میتوان به عنوان stop word تشخیص داد؟ شاید پس از بررسی، تشخیص داده شود که بهتر است متداولترین واژهی کلیدی ایندکس شده، به stop list اضافه شود.
SELECT * FROM sys.dm_fts_index_keywords(DB_ID(DB_NAME()), OBJECT_ID(N'dbo.Documents'));
متد sys.dm_fts_index_keywords_by_document
این متد اطلاعاتی را در سطح اسناد باز میگرداند. کاربردهای آن میتوانند شامل موارد زیر باشند:
- یافتن جمع تعداد واژههای کلیدی که یک full-text index دارا است.
- آیا واژهی کلیدی مورد نظر، در ردیف در حال بررسی وجود دارد؟
- یک واژهی کلیدی چندبار در کل ایندکس ظاهر شدهاست؟
- یک واژهی کلیدی در یک ردیف یا سند مشخص، چندبار تکرار شدهاست؟
- یک ردیف یا سند، از چند واژهی کلیدی تشکیل شدهاست؟
SELECT I.document_id, D.title, I.display_term, I.occurrence_count FROM sys.dm_fts_index_keywords_by_document(DB_ID(DB_NAME()), OBJECT_ID(N'dbo.Documents')) AS I INNER JOIN dbo.Documents D ON D.id = I.document_id;
متد sys.dm_fts_index_keywords_by_property
در قسمتهای قبل، خواص و متادیتای اسناد آفیس را نیز ایندکس کردیم. این متد، اطلاعات مرتبط با خواص اسناد موجود در full-text index را باز میگرداند.
کاربردهای آن:
- چه محتوایی، در خاصیتی مشخص از سندی معلوم، ذخیره شدهاست؟
- خاصیت مورد نظر چه اندازه بکار رفته و تکرار شدهاست؟
- چه اسنادی دارای خاصیتی مشخص هستند؟
SELECT I.document_id, D.title, I.display_term, I.property_id FROM sys.dm_fts_index_keywords_by_property(DB_ID(DB_NAME()), OBJECT_ID(N'dbo.Documents')) AS I INNER JOIN dbo.Documents D ON D.id = I.document_id;
متد sys.dm_fts_parser
متدهای قبلی که بررسی کردیم، نیاز به یک جدول و وجود full-text index بر روی آن دارند؛ اما متد dm_fts_parser خیر. این متد یک ورودی را گرفته و سپس تمام مراحل تهیهی یک full-text index را به صورت پویا انجام میدهد.
کاربردهای آن:
- درک اینکه موتور FTS با یک ورودی رشتهای چگونه رفتار میکند.
- استخراج ایندکسهای یک متن و ذخیرهی دستی آن در یک جدول.
- استخراج واژههای کلیدی یک رشته.
- آنالیز پویای INFLECTIONAL (مانند مثال زیر)
SELECT display_term, keyword FROM sys.dm_fts_parser(N'"Mycustom string"', 1033, NULL, 0);
SELECT * FROM sys.dm_fts_parser('FORMSOF(INFLECTIONAL,'+ 'term' + ')', 1033, NULL, 0);
در اینجا پارامتر دوم آن شماره زبان مورد استفاده است. پارامتر سوم مشخص کنندهی stop list میتواند باشد و پارامتر سوم حساسیت به لهجه را مشخص میکند.