בתשובה לשוטה הכפר הגלובלי, 05/01/04 13:45
המוס עמוס 188414
אכן זמנים קשים. זמני התגובה של השרת, זאת אומרת.

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

במקביל נמשך המאמץ לשדרג את חומרת השרת, כמו גם לשפר את ביצועי התוכנה (ע"י הסרת features, כמובן).
המוס עמוס 188416
תהיה מגבית לצורך שדרוג החומרה?
המוס עמוס 188431
לא בשלב זה...
המוס עמוס 188433
אפשר לשאול מתי מנוע החיפוש יחזור לפעילות מלאה?
המוס עמוס 188434
לא לפני שדרוג החומרה, ואולי גם לא מייד לאחריו.
המוס עמוס 188437
תודה רבה.
ואוף דה רקורד: אוף! (דה רקורד).
המוס עמוס 190602
חומרת השרת שודרגה היום (הכפלת כמות ה-RAM). עם זאת, לצערי נראה כי אין די בכך כדי להחזיר את מנוע החיפוש לפעולה מלאה, לפחות לא בשלב זה. אני מקווה למצוא זמן בקרוב כדי לשפר את אלגוריתם החיפוש, אך סביר שהשיפור ידרוש שדרוג חומרה נוסף (הוספת דיסק קשיח, או לחלופין העלמת אתר "עין הדג" בתהום המצולה, או משהו).
המוס עמוס 190605
יאללה, להעלים את עין הדג, וישא''ק.
המוס עמוס במחשבות 190607
הבעייה היא באלגוריתם? הוא איטי מדי, תופס יותר מדי זכרון, או מה? סתם, הנחתי שהבעייה היא עומס פשוט על השרת, לא ציפיתי ששיפור אלגוריתמי יביא רווחה.
המוס עמוס במחשבות 190610
הבעיה בכללה היא עומס על השרת; בעיה זו נפתרה. במקביל, מנוע החיפוש אינו יעיל (בלשון המעטה), משום שנכתב בידי עצלן, ושיפור ראוי שלו ידרוש נפח דיסק לא מועט.
המוס עמוס במחשבות 190613
הבנתי. הייתי מצפה שיהיו דברים כאלה מן המוכן עבור בסיס הנתונים שאתה משתמש בו, אבל אולי לייבא ולתפור אותם יותר מעיק מלכתוב אותם לבד.
המוס עמוס במחשבות 190620
הגרסה הנוכחית של MySQL (להבדיל מזו שהשתמשתי בה כשנכתבה התוכנה במקור, בשלהי האלף הקודם) אכן כוללת full-text search, אבל (א) הוא אינו חוסך את נפח הדיסק הנדרש, ו-(ב) הוא אינו הולם את לצרכינו (חיפוש "שרת" לא יעלה תגובה שמופיעה בה המלה "השרת", למשל, שלא לדבר על "ולכשהשרת").
המוס עמוס במחשבות 190621
(''את צרכינו'', כמובן, ולא כפי שקשקשתי).
המוס עמוס במחשבות 190626
והוא לא תומך בחיפוש regexp? לא שאני מציע שהאיילים ישימו כוכביות, רק שהמנוע יצמיד כוכביות למילים (אלא אם המחפש מבקש במפורש "מלים שלמות").

למה אני שואל? כי לתומי הנחתי שלמתכנת בשנת 2004 יהיו כבר מן המוכן כל הכלים הדרושים לתחזוקת אתרים ובסיסי-נתונים, ובפרט חיפושים מתוחכמים ויעילים בזמן ובזכרון. התקדמנו הרבה מאז ימי dBase וטורבו-פסקל 3, ובכל זאת על המתכנת היקר להוגיע את מוחו ולכתוב לעצמו את אלגוריתמיו. משהו לא עובד כמו שצריך.
המוס עמוס במחשבות 190630
לא, הוא לא תומך ב-regexp. למעשה, קשה לחשוב על מבנה נתונים לאינדקס שיאיץ שאילתות על regexpים שרירותיים.
המוס עמוס במחשבות 190644
הגזמתי, לא שרירותיים. סתם substrings.
המוס עמוס במחשבות 190646
למרבה הצער, ה-full text search של MySQL תומך בחיפוש עפ"י קידומת אבל לא עפ"י סיומת או תת-מחזורת שרירותית. ולמעשה, הוא לא זמין בכלל אם משתמשים ב-transactions (דהיינו ב-InnoDB).
נו, וזה לא בזיון? 190650
בצחוק, אבל אני באמת מופתע. חתיכת תוכנה מורכבת ואף פופלרית היא MySQL, לא? ואי-אפשר לחפש תת-מלה?
נו, וזה לא בזיון? 190653
אפשר, אבל לא ביעילות -- כלומר, אין אף סוג אינדקס רלוונטי.
המוס עמוס במחשבות 191070
אז אולי אפשר להוסיף שדה נסתר לכל תגובה וסיפור שיכלול את כל הסיומות האפשריות של כל אחת מהמלים בטקסט, ואז להריץ full text search עפ"י קידומת. זה יכפיל את נפח האחסון של האייל פי n, כש-n הוא אורך המלה הממוצעת (לא ביג דיל, חוץ מתגובות של אלכסנדר מאן).
המוס עמוס במחשבות 191080
יותר פשוט לממש מנגנון FTS משלנו (וזה כנראה מה שנעשה, בסופו של דבר); אלא שכרגע אין לנו את נפח הדיסק הדרוש.
המוס עמוס במחשבות 191114
לפני שכותבים משהו מאפס - כדאי אולי להעיף מבט כאן: http://jakarta.apache.org/lucene/docs/index.html
( או כאן: http://sourceforge.net/projects/clucene/ )
(זה בהנחה שאפשר לגשר על הפער בין השפה שבה כתובה תוכנת האייל (PHP?) לבין אחת מהאופציות הנ"ל).

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

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

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

אני קצת מופתע מכך שכתיבת מנגנון חיפוש (יעיל) לא נראית לך כאתגר גדול במיוחד (על Lucene עבדו, נדמה לי, לא מעט אנשים במשך זמן לא קצר). אני אשמח אם תצליח במשימה ותוכיח לי שהספקנות שלי איננה במקומה.
המוס עמוס במשימות 191117
לכשאתפנה לטפל במשימה זו, אבחן את Lucene בקפידה לפני שאתחיל. השבוע סיימתי מאמץ שנמשך כמה חודשים‏1 - שדרוג מלא של "אזור המערכת" של האייל; שינוי מהותי ומשמעותי שאף משתמש, מלבד העורכים (ואולי חלק מכותבי המאמרים) לא ירגיש בו. המשימות הבאות גם הן "מאחורי הקלעים", כמו למשל ניצול יכולות הטרנזקציה החדשות (יחסית) של MySQL.

-----
1 כמה חודשים, בעיקר משום שלא הקדשתי לו את כל זמני, כמובן.
המוס עמוס במחשבות 191072
...ואגב, טל, אני חושד שמאמר מפרי-עטך שיתאר את המבנה הבסיסי של המנוע של המוס, ובמיוחד את הבעיות המיוחדות של התמודדות עם עברית ועם הסביבה החברתית הייחודית של האייל, ובצירוף כמה אנקדוטות, ייקרא בשקיקה על ידי לא מעט איילים. ואם המאמר גם יכתב בשפה לא-טכנית ושווה לכל נפש, הוא יוכל להציג בפני כל האיילים את העולם המופלא של טכנולוגית הWeb בכלל.
המוס עמוס במחשבות 191082
העורך הראשי לא מרשה לי! (ז'תומרת, ענייני אינטרנט הם בהגדרה ה-off-topic היחיד של האתר). ואם להיות קצת יותר רציני, הצגתי חלק קטן מהבעיות הללו בהרצאה שהעברתי פעם כמרצה אורח בקורס הנדסת תוכנה בטכניון. אני לא בטוח שיש לי את הכוח הנפשי לכתוב מאמר בנדון; אולי פעם.
לא מעט איילים++ 191086
המוס עמוס 194232
שמתי לב שמנוע החיפוש חזר לפעילות מלאה (אפשר לחפש תגובות ללא הגבלת זמן, לחפש תגובות בתוך דיון מסויים, לקרוא את התגובות שבאי-השדים, ובטח עוד כמה דברים שלא שמתי לב אליהם). תודה!
המוס עמוס 194235
שמונה שעות וארבעים דקות. (סתם, תהיתי כמה זמן יקח עד שמישהו ישים לב).

מנגנון החיפוש הוא עדיין זה הישן והבלתי-יעיל, כך שציבור הקוראים מתבקש להשתמש בחיפושים לא-מוגבלים ברחמנות, אם בכלל.
המוס עמוס 206001
אז להשתמש בגוגל?
למשל: http://www.google.co.il/search?q=%D7%98%D7%9C-%D7%9B...

חזרה לעמוד הראשי המאמר המלא

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