PDA

View Full Version : جستجوي عين كلمه در يك جمله



sajjad_kochekian
دوشنبه 28 آذر 1390, 14:23 عصر
با سلام
من در يک جستجو نياز دارم که داخل يک جمله عين يک کلمه را پيدا کنم.
کد رو قبلا به صورت زير نوشته بودم ولي الان به مشکل برخورده ام.
title like '%'+@Title + '%'
حالا من مي خواهم عبارت رمان را جستجو کنم. که ممکن است اين عبارت در وسط جمله باشد.
حالا وقتي رمان را جستجو مي کنم عنوان هاي شبيه را هم مي آورد مانند درمان يا کرمان

به چه روشي مي توان اين مشکل را حل کرد.

hamid_shrk
دوشنبه 28 آذر 1390, 14:49 عصر
فکر میکنم باید یک space به اول و آخر کلمتون اضافه کنید.چون فقط در این حالت رمان تنها میشه.

sajjad_kochekian
دوشنبه 28 آذر 1390, 16:04 عصر
فکر میکنم باید یک space به اول و آخر کلمتون اضافه کنید.چون فقط در این حالت رمان تنها میشه.

اين روش جواب نداد

hamid_shrk
دوشنبه 28 آذر 1390, 17:06 عصر
ولی من این رو چک کردم و کار کرد

@name nvarchar(max)
as
set @name='%'+' '+@name +' '+ '%'
select * from Products where Products.description like @name
GO

m110_110
سه شنبه 29 آذر 1390, 07:35 صبح
با سلام

ولی من این رو چک کردم و کار کرد

@name nvarchar(max)
as
set @name='%'+' '+@name +' '+ '%'
select * from Products where Products.description like @name
GO



اين روش بد نيست
ولي اين روش براي يك كلمه كه به فرض اولين كلمه ذخيره شده در يك فيلد باشه نمي تونه جواب بده و اون هم بدليل اينكه قبل از كلمه اول space اي وجود نداره
فكر مي كنم بايد دنبال راه حل بهتري بود و يا مشكل اين روش رو حل نمود
يا علي

baktash.n81@gmail.com
سه شنبه 29 آذر 1390, 08:04 صبح
سلام

من نمی دونم برای این کار روش مستقیم وجود داره یا نه ... اما به نظرم برای این کار بهتره یه الگوریتم در بیاری ... اول نتایج جستجو با همون کدی که اول نوشتی یعنی %@Name% رو درون یه جدول موقت برزی بعد یه سری کاراکتر خاص رو Replace کنی مثل نقطه, ویرگول پرانتز فاصه ... هر چیزی به جز حروف الفبا بعد ببینی کدوم یکی از نتایج دقیقا برابر با چیزیه که می خوای ... البته اگه بگی دقیقا قراره چه اتفاقی بیوفته ... شاید بتونیم بیشتر کمک کنیم ...

sajjad_kochekian
سه شنبه 29 آذر 1390, 23:20 عصر
بهترین روش برای کار من full text search بود
با روش خیلی راحت میشه کار کرد.
ولی مشکل اینجاست که هنوز منبع خوب آموزشی پیدا نکردم.
تفاوت دستور Like و full Text Search اینکه دستور Like با کارکتر ها سرو کار داره ولی Full Text Search با کلمات کار میکنه حتی این امکان را داره که کلمات هم معنی را پیدا کنه