پیاده سازی Full-Text-Search در SQL Server

یکشنبه 7 تیر 1394

در این مقاله یاد خواهیم گرفت که چطور یک متن کامل را در SQLServer جستجو کنیم

پیاده سازی  Full-Text-Search  در SQL Server

در این پارت از آموزش قصد داریم به نحوه استفاده از full-text search  در  Sql Server بپردازیم هنگامی که شما به عنوان یک برنامه نویس ، برنامه ای را شروع به نوشتن میکنید برای بهروری بیشتر کار، نیاز به جستجو اطلاعات در برنامه خود دارید. شما میتوانید اطلاعات خود را با کلماتی مانند "Where " ویا "Like" ویا هزاران راه دیگر جستجو کنید .در این مقاله میخواهیم از تکنیک Full-text-Search برای جستجو بر روی داده ها استفاده کنیم. بنابراین در این مقاله با پیاده سازی یک مثال به نحوه ایجاد و استفاده  از full-text-search درSqlServer  میپردازیم دراین آموزش از Sql Server Management Studio  استفاده میکنیم

برای شروع به کار  SQl Server را باز کرده ویک بانک اطلاعاتی به نام searchِdbو یک جدول به نام Search_tb ایجاد میکنیم

حال شروع به ثبت داده به صورت دستی درآن میکنیم

استفاده از "Where "و "Like":

حال بعد از آن که بانک اطلاعاتی و جدول خود را ساختیم نیاز داریم که روی اطلاعات وارد شده جستجو بزنیم ،برای اینکار  ابتدا با Where و سپس با like این کار را انجام میدهیم و نتیجه را مشاهده میکنیم

SELECT * FROM Search_tb WHERE [Description] = N'دارای '
SELECT * FROM Search_tb WHERE [Description] LiKE N'%دارای%'

خروجی:

همان طور که مشاهده میکنید با کلمه کلیدی  where هیچ رکوردی در خروجی نشان داده نمیشود  ولی با کلمه کلیدی "Like " میتوان به خروجی مرود نظر رسید.

حال برای مثال یک کلمه ، به کلمه مورد نظر در "like "اضافه کنید .

SELECT * FROM Search_tb WHERE [Description] LiKE N'%دارای موفق%'

خروجی:

همان طور که مشاهده میکنید هیچ خروجی را مشاهد نمیکنید

نکته:کلمه کلیدی like موارد زیر را پشتیبانی نمیکند.

1: like چند کلمه را نمیتواند پشتبانی کند

2: چند کلمه مشابه را نمیتواند درخروجی نشان دهد

3: اگر کلمه ای را اشتباه وارد کنیم مشابه آن را نمی اورد

حال برای رفع این مشکل از کتابخانه full-text-Search استفاده میکنیم.

برای استفاده از کتابخانه full-text-sreach  روی اسم جدول خود کلیک راست کنید در Full-Text >Define Full Text- Index.

حال شروع به نصب کتابخانه full-text-search  میپردازیم

در این مرحله باستی نام ستون هایی را که  نیاز داریم روی آن ها جستجو بزنیم را انتخاب کنیم

در این مرحله گزینه automatically  به صورت پیش فرض انتخاب شده است و حال دکمه Next را میزنیم.

در این مرحله یک اسم برای catalog انتخاب میکنیم

در این مرحله نیز دکمه Next را انتخاب میکنیم

ودر آخر دکمه finish را انتخاب میکنیم

حال با زدن دکمه finish ، با صفحه ای مانند زیر روبه رومیشویم.

 

در انتها دکمه cloes را میزنیم حال کتابخانه full-text به پایگاه ما اضافه شد

حال برای استفاده از آن باید روی اسم جدول کلیک راست کنید و در Full-text-Index>start Full Population.را انتخاب کنیم

بعد از کلیک کردن بر روی Start Full Population با صفحه مانند زیر رو میشوید که به منظور استفاده از کتابخانه full-text است که بایستی دکمه close را انتخاب کنید.

حال این کتابخانه دارای 4 تا متد برای استفاده میباشد

1 : FreeText : این متد برای پیدا کردن کلمه یا کلماتی مشابه در هر ستون کاربرد دارد.

2:FREETEXTTABLE:این روش همانند freeText است با این تفاوت که اطلاعات جستجو شده را در جدول نیز نشان میدهد.

3:CONTAINS:برای پیدا کردن یک کلمه مشابه به کار میشود

4:CONTAINSTABLE: این متد همانند متدCONTAINSاست با این تفاوت که نتیجه را در جدول نیز به نمایش میگذارد.

حال در این جا به پیاده سازی یک مثال با FreeText میپردازیم.

SELECT * FROM Search_tb WHERE FREETEXT (Description, N'دارای')

خروجی:

همان طور که شماهده میکنید تمام رکود هایی را شامل کلمه "دارای " بود را در خروجی نشان داد.

حال یک کلمه دیگر به آن اضافه میکنیم

SELECT * FROM Search_tb WHERE FREETEXT (Description, N'دارای')

خروجی

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید