پیاده سازی Full-Text-Search در SQL Server
یکشنبه 7 تیر 1394در این مقاله یاد خواهیم گرفت که چطور یک متن کامل را در SQLServer جستجو کنیم
در این پارت از آموزش قصد داریم به نحوه استفاده از 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'دارای')
خروجی
- SQL Server
- 7k بازدید
- 10 تشکر