עבור לתוכן

איך לממש חיפוש שמחזיר תוצאות קרובות?

Featured Replies

פורסם

אהלן,

אני מתחיל לתכנן מערכת שתחפש במסד SQL לפי מספר קריטריונים משתנה והיא צריכה גם להחזיר תוצאות קרובות.

אם המשתמש מריץ חיפוש למציאת שני אנשים עם קריטריונים של גיל, שפה, תואר, שנות נסיון, והתמחות (5 משתנים) המערכת צריכה להחזיר את התוצאות המתאימות אבל גם את התוצאות הקרובות שיוצגו גרפית ברשימות נפרדות.

ז"א שהחיפוש ירוץ שוב, הפעם רק עם 4 מתוך חמשת הקריטריונים. והוא ירוץ שוב ושוב כאשר כל פעם קריטריון אחר לא משתתף בחיפוש וכך בעצם מקבלים אנשים שהם קרובים לקריטריונים המקוריים אבל לא עומדים רק באחד מהתנאים.

מה הדרך הכי נכונה ליישם את זה?

תודה!

נ.ב - אם יש לכם רעיון לכותרת ברורה יותר - אל תתביישו להציע :)

פורסם

אתה צריך להמציא שיטת ניקוד ולתת ציון לכל התאמה.

תחלק את הציון הכולל לקטגוריות ע"פ קרטריוני החיפוש.

למשל בגיל תתן ציון 100/100 להתאמה מלאה, ותוריד 20 אחוז על כל שנה הפרש.

תשכלל ציון בכל קטגוריה ואז תעשה ממוצע בינהם.

כמובן שאתה יכול לתת משקל שונה למאפיינים שונים (נגיד לתת לשנות נסיון פקטור של 1.3).

תפעיל את פונקצית הניקוד שלך על כל רשימת האנשים, ותמיין אותם לפי הציון הכולל (ותציג את זה איך שנוח לך).

פורסם
  • מחבר

המממ.. זה נשמע כמו המון עבודה.

במיוחד שאני עוד לא יודע כמה attributes יהיו לכל משתמש.

מה גם שבכל פעם שירוץ החיפוש הוא יחשב מחדש את הציון של כל הDB כי הקריטריונים של החיפוש יהיו שונים.

או במילים אחרות, הרבה זמן יתבזבז על חישובים של משתמשים שלא עומדים רק באחת מהקטגוריות.

פורסם

אני לא מבין מה הבעיה מבחינת ה Attributes, אני מניח שברגע שהם יקבעו, הם לא ישתנו כל יום...

מבחינת יעילות יש לי שני רעיונות:

1) במעבר על המועמדים, אם אתה רואה שנניח מועמד לא עומד ברף של שני קריטריוני חיפוש, אתה תוציא אותו לגמרי מהחיפוש. כך בקריטריונים הבאים תהיה רשימה קצר יותר ויותר.

2) אתה יכול להחזיק אינקדס עבור כל קטגוריה. ז"א רשימה ממויינת של מועמדים ע"פ גיל, רשימה ממויינת של המועמדים ע"פ שנות נסיון וכו'.

כך החיפוש בכל קטגוריה יתבצע הרבה יותר מהר.

כמובן שאתה יכול לשלב את שני הרעיונות, ואולי לחשוב על עוד שיפורים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים