شيما دهباشي

شركت رادكام
34 - پیام , 597 - نظر

نکاتی در مورد Full-Text Search

برای ایجاد query هایی که در جستجو های مبتنی بر FTS استفاده می شود ، می توان از گزینه های مختلفی استفاده کرد . دو گزینه اصلی که در اغلب موارد مورد استفاده قرار می کیرند عبارتند از CONTAINS و FREETEXT .

در حالت کلی از CONTAINS زمانی استفاده می شود که احتیاج به یافتن عین لغت / عبارت هستیم. بدین صورت که پس از ارسالquery ، جستجوی "خود لغت / عبارت "  در فیلدهای تعریف شده برای کاتالوگ صورت می گیرد. البته این نحوه استفاده ، تنها یکی از کاربردهای CONTAINS می باشد. به عنوان مثال با استفاده از CONTAINS  شما می توانید تمامی لغاتی که دارای پیشوند خاصی هستند جستجو کنید و یا  لغتی که در نزدیکی لغت خاصی  قرار دارد - این نزدیک بودن دارای تعریف می باشد - .

مثال های زیر را در نظر بگیرید :

SELECT CONTENT ,ID
FROM TEST
WHERE CONTAINS(CONTENT, 'سردفتر')

نتیجه query بالا تمامی رکورد هایی است که عینا دارای لغت "سردفتر" باشند .و نه هیچ چیز دیگر!
حال در صورتی که بخواهیم کمی قلمرو این جستجو را گسترش دهیم و تمامی رکورد هایی را داشته باشیم که شامل لغات سردفتران ، سردفترها ،سردفتر و... چطور ؟ CONTAINS این امکان را به شما می دهد که  برای لغات مورد نظر خود پیشوند تعریف کنید :

SELECT CONTENT ,ID
FROM TEST
WHERE CONTAINS(CONTENT,'" سردفتر *"')

اما این قوانین زمانی مفید واقع می شوند که کاربر تنها یک لغت وارد کرده باشد. در صورتی که مورد جستجو یک عبارت باشد ، قوانین کمی دچار تغییر می شوند :

SELECT CONTENT ,ID
FROM TEST
WHERE CONTAINS(CONTENT, 'سر دفتر')

اینطور به نظر می رسد که مثال بالا تمامی رکورد هایی را برگرداند که عبارت سر دفتردر آن تکرار شده است.اما در واقع این طور نیست! و تنها با پیغام خطا روبه رو خواهید شد . در حالت کلی هر زمانی که کاربر بخواهد یک عبارت را جستجو کند می تواند از " " (double Quotaion) استفاده کند. با توجه به اینکه در اکثر موارد کاربران در هنگام چنین جستجوهایی دچار مشکل می شوند، برای ساده کردن کار کاربران  ترجیح داده شده که در هنگام ایجاد query از double quotion استفاده شود . با این توصیف در صورتی که بخواهیم تمام رکوردهایی که در آن سر دفتر ها ، سر دفتران وجود دارد به صورت زیر عمل می کنیم  :

SELECT CONTENT ,ID
FROM TEST
WHERE CONTAINS(CONTENT, '"سر دفتر *"')

 

ارسال شده در تاریخ ۱۳ آذر ۱۳۸۴ - 12:34 عصر

نظرات

# پاسخ به: نکاتی در مورد Full-Text Search  

خیلی ممنونم
۱۰ خرداد ۱۳۸۵ - 7:08 عصر | علیرضا

# اشکال در اجرا در .net  

سلام
من برای جستجو در پایگاه داده سایتم که استفاده می کنم از WHERE CONTAINS
خطا می گیرد لطفا من را راهنمایی کنید
ممنون
خدانگهدار
۳ شهریور ۱۳۸۵ - 6:20 عصر | lpln

# پاسخ به: نکاتی در مورد Full-Text Search  

با سلام
چطور مي توانم از Full-Text Search براي جستجو در يك فايل txt استفاده كنم.
لطفا من را راهنمایی کنید
متشكرم
۴ آذر ۱۳۸۵ - 11:27 عصر | ziba

ارسال نظرات

عنوان:  
نام:  
آدرس الکترونیکی:
زبان:
توضیح:  
لطفا متن مقابل را در زیر وارد کنید
(کوچک یا بزرگ بودن حروف مهم نیست)