PDA

View Full Version : سرچ در بانک و نمایش شبیه ترین جواب



download69
دوشنبه 19 فروردین 1392, 21:41 عصر
سلام

روش جستجوی من به صورته که کلمه یا کلمات وارد شده در textbox رو از هم جدا میکنم و تک تک در بانک در بین فیلد های مختلف سرچشون میکنم ...

مثلا یک نفر در textbox مینویسه: علی ایرانی
علی و ایرانی به صورت تک تک با فیلد ها مقایسه میشن و اگر علی و یا ایرانی در بین فیلد ها وجود داشت جواب رو میده که تا اینجا مشکلی نیست

ولی اگر 2 یا بیش از 2تا اسم علی و یا حتی فامیلی ایرانی در بانک باشه یعنی مثلا علی احمدی، علی رومزپور و ... و سعید ایرانی، حامد ایرانی و ....

وقتی علی ایرانی سرچ میشه تمام علی ها و تمام ایرانی ها جز سرچ هستن ولی من میخوام که علی ایرانی جزء نتایج اولیه باشه !!!
یعنی هرچی شبیه تر باشه جز نتایج بالاتری باشه

tree1371
دوشنبه 19 فروردین 1392, 23:42 عصر
باید اینطورذ عمل کنید ابتدا خود کلمه سرچ کنید

سپس تک تک کلمه یا بگید یدونه از آخر کم کن بعد که تموم شد برو تک تک هم بگرد .

واسه این کار باید کلمه هات رو جدا کنی از هم و در یک آرایه ذخیره کنی و استفاده کنید . معیار جدا کردنت هم باید space باشه.

amirsajjadi
سه شنبه 20 فروردین 1392, 00:03 صبح
باید اینطورذ عمل کنید ابتدا خود کلمه سرچ کنید

سپس تک تک کلمه یا بگید یدونه از آخر کم کن بعد که تموم شد برو تک تک هم بگرد .

واسه این کار باید کلمه هات رو جدا کنی از هم و در یک آرایه ذخیره کنی و استفاده کنید . معیار جدا کردنت هم باید space باشه.

اینطوری که دوستمون میگه درسته ولی زمان زیادی برای رشته های بزرگ مصرف میشه. به نظر من همون روش خودت رو بکار ببر بعد نتایج رو توی یک آرایه توی حافظه بریز و بعد از طریق الگوریتمی توی اون آرایه جستجو کن و سپس براساس اولویت های نمایش اونا رو نشون بده.
الگوریتمی که الان به ذهنم رسید میتونه این باشه که علاوه بر خود جمله یا کلمه ای که توی آرایه ریختی یک فیلد دیگه هم بزار که عددی باشه. بعد تمام رکوردها ی آرایه رو با رشته مقایسه کن (برعکس روش اول) و تعداد کلمات مشترک رو بریز توی اون فیلد عددی مربوطه و بعد براساس اون فیلد عدد مرتب سازی نزولی کن.

download69
سه شنبه 20 فروردین 1392, 12:08 عصر
چطور میشه تعداد کلمات مشترک رو شمرد ؟؟

Mohammadvb6
سه شنبه 20 فروردین 1392, 12:16 عصر
از این کوئری استفاده کنید


select * from table where name=@name and family =@family

amirsajjadi
سه شنبه 20 فروردین 1392, 12:52 عصر
چطور میشه تعداد کلمات مشترک رو شمرد ؟؟

کلمات هر رکورد رو براساس اسپیس جدا کن و بعد کلمات جمله رو هم اسپلیت کن و بعد با یک حلقه تودرتو اونا رو میتونی بشماری