.:: محمدحسین فخرآوری ::.

با سلام و خسته نباشید به شما دوست عزیز به قسمت موضوعات وبلاگ مراجعه کنید. 09173700916

Full-Text SEARCH چیست؟

راه اندازی سرویس Full-Text Search

برای Start یا راه اندازی سرویس Full Text Search، از منوی Start روی Computer راست کلیک کرده و گزینه Manage را انتخاب نمایید، بلافاصله پنجره Server Manager نمایان می شود. مطابق شکل زیر از سمت چپ گزینه Services را انتخاب کنید و برای Start یا راه اندازی سرویس Full Text Search روی گزینه SQL Full-text Filter Daemon Launcher کلیک راست کرده و گزینه Start را انتخاب نمایید:

نکته: سرویس Full-Text Search به ازای هر Instance می باشد، یعنی اگر روی کامپیوترتان دو Instance از SQL Server نصب کرده باشید، در قسمت Services دو سرویس Full-Text Search خواهید دید، البته در انتهای نام سرویس، نام Instance داخل پرانتز ذکر شده است.

یک روش دیگر برای مشاهده سرویس های SQL Server، از طریق برنامه SQL Server Configuration Manager است، بنابراین روی منوی Start کلیک کرده و گزینه All Programs را انتخاب نمایید، سپس گزینه ... Microsoft SQL Server و سپس Configuration Tools را گسترش دهید و نهایتاً روی SQL Server Configuration Manager کلیک نمایید.

بلافاصله پنجره SQL Server Configuration Manager نمایان می شود، حالا با کلیک روی SQL Server Services می توانید کلیه سرویس های SQL Server را مشاهده نمایید. حالا مانند قبل روی گزینه SQL Full-text Filter Daemon Launcher کلیک راست کرده و گزینه Start را انتخاب نمایید:

 توجه: برای استفاده از ویژگی Full-Text Search، باید تیک Full-Text Search را هنگام نصب SQL Server فعال کرده باشید، یعنی مطابق شکل زیر در مرحله Feature Selection، گزینه Full-Text Search فعال شده باشد:


روش کار Full-Text Search

همان طور که قبلاً گفته شد، از Full-Text Search برای جستجو در داده های حجیم استفاده می شود، به عنوان مثال جدول زیر را که شامل دو رکورد "ID" و "Description" است را تصور فرمایید:

 ID Description
 1 همان طور که قبلاً گفته شد، از قابلیت Full-Text Search برای جستجو در داده های حجیم استفاده می شود، به عنوان مثال جدول زیر را که شامل دو رکورد "ID" و "Description" را تصور فرمایید:
 2 Full-Text Search یکی از سرویس های SQL Server است.
 3 هدف استفاده از Full-Text Search جستجو در داده های حجیم است.
 4 Full-Text Search، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی Full-Text Search، قسمت های قبلی را مرور فرمایید.
 ...  ...

 اگر قابلیت Full-Text Search را روی جدول بالا فعال کنید، به ازای تک تک کلمات بکار رفته در فیلد "Description" بهمراه شماره رکورد آنها، ایندکس ایجاد خواهد شد:

کلمه شماره رکورد
همان  1
طور  1
Full-Text  1
Full-Text  2
Full-Text  3
Full-Text  4
جستجو  1
جستجو  3
...  ...

از این لحظه به بعد اگر به دنبال کلمه ای در فیلد "Description" باشید، بجای اینکه تمام ستون Description جستجو شود، جدول ایندکس های مربوط به Full-Text Search جستجو خواهد شد. و این کار بشدت سرعت اجرای کوئری ها را افزایش خواهد داد.

در Full-Text Search براساس یک یا چند ستون جدول ایندکس گذاری انجام می شود و برای هر ستون می توان از قواعد یک زبان خاص استفاده نمود.

 توجه: کلمات اضافه مثل "که"، "است"، "را" و ... ارزش ایندکس کردن را ندارند، شما می توانید به راحتی این کلمات را به Full-Text search معرفی مایید. (StopList)


مثال عملی از Full-Text Search

مثال 1: آیا Instance جاری از قابلیت Full-Text Search پشتیبانی می کند:


SELECT SERVERPROPERTY('IsFullTextInstalled')

مثال 2: همان طور که در Word Breaker توضیح داده شد، برای تکه تکه کردن جلمات از قواعد یک زبان خاس استفاده خواهد شد. اسکریبت زیر لیست تمام زبان هایی که بصورت پیش فرض پشتیبانی می شوند را نمایش خواهد داد:

کلیه زبان های پیش فرض SQL Server

SELECT * FROM sys.fulltext_languages 

زبان عربی

SELECT * FROM sys.fulltext_languages WHERE name='Arabic'

زبان خنثی که برای فارسی مناسب می باشد

SELECT * FROM sys.fulltext_languages WHERE name='Neutral'

متأسفانه زبان فارسی در لیست اول وجود ندارد و مجبوریم از حالت Neutral استفاده کنیم.

مثال 3: استفاده از تابع sys.dm_fts_parser

با استفاده از تابع sys.dm_fts_parser می توان نتیجه تکه تکه کردن متن را با توجه به قواعد زبان (word breaker) و مترادف ها (Thesaurus)  و همچنین لیست کلمات زائد (Stop List) مشاهده نمود. در واقع تابع sys.dm_fts_parser لیست Token ها را نمایش خواهد داد:

نحوه ی استفاده:

تابع sys.dm_fts_parser

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

برای کسب اطلاعات بیشتر به لینک روبرو مراجعه فرمایید: تابع sys.dm_fts_parser

پارامترها:

پارامترتوضیح
query_string

متن یا جمله مورد نظر برای تکه تکه کردن

lcid

ID یا شنایه زبان مورد نظر برای استفاده از قواعد آن برای تکه تکه کردن
کوئری SELECT * FROM sys.fulltext_languages لیست کلیه زبان ها را همراه با کد lcid نمایش خواهد داد.

stoplist_id

ID یا شناسه Stop List

accent_sensitivity حساس بودن به حروف بزرگ و کوچک

برچسب‌ها: Full , Text SEARCH
محمدحسین فخرآوری ، یکشنبه ۱۳۹۴/۰۹/۰۱ ، 0:33