הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   רלוונטיות תוצאות חיפוש (https://hosts.co.il/forums/showthread.php?t=90027)

Erez | TrustMedia.co.il 09-06-11 17:31

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

תודה :)

RAS 09-06-11 17:48

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

Erez | TrustMedia.co.il 09-06-11 18:04

ציטוט:

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

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

IgalSt 09-06-11 20:19

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

Erez | TrustMedia.co.il 09-06-11 20:34

ציטוט:

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

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

IgalSt 09-06-11 21:23

ציטוט:

נכתב במקור על ידי Erez.info (פרסם 807112)
פיתרון מעניין, אבל אני מדבר על אלפי תוצאות חיפוש בד"כ, כך שלעבור בכל דף שהמשתמש גולש על כמה אלפי תוצאות זה מלא משאבים.
אפשר אולי לנסות לאחסן את זה בסשיין או בקוקיז, או אפילו בבסיס נתונים, אבל זה כנראה יהיה ארוך מדי כדי לאחסן בסשיין או בעוגיה.
אני כנראה אנסה את זה אם לא יהיו פתרונות אחרים

התחלתי לכתוב פתרון נוסף שיהיה מהיר יותר בזמן ריצה, אבל החלטתי שלו.
אחרי התגובה שלך אני רואה שזה יכול להיות רלוונטי בכל זאת.

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

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

הכל תלוי בעלות תועלת שלך

Erez | TrustMedia.co.il 10-06-11 06:34

ציטוט:

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

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

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

הכל תלוי בעלות תועלת שלך

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

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

BlueNosE 10-06-11 07:52

תפרט יותר. האם התחום הסמנטי של האתרים שאתה מאנדקס הוא דומה? אם כן, יש לי רעיון מה אפשר לעשות, אבל בשביל לחסוך לעצמי באסה על בזבוז זמן, קודם תסביר פחות או יותר מה המנוע עושה (:

Erez | TrustMedia.co.il 10-06-11 08:17

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 807147)
תפרט יותר. האם התחום הסמנטי של האתרים שאתה מאנדקס הוא דומה? אם כן, יש לי רעיון מה אפשר לעשות, אבל בשביל לחסוך לעצמי באסה על בזבוז זמן, קודם תסביר פחות או יותר מה המנוע עושה (:

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

GeffenMalki 10-06-11 08:50

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


כל הזמנים הם GMT +2. הזמן כעת הוא 22:30.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ