לכו חפשו את החברים שלכם (או כל דבר אחר)

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

בפוסט הנוכחי נדבר טיפה על חיפוש באפליקציה, וכרגיל נראה דוגמא שממחישה ישום state of the art בפלטפורמת grails  עם שורת קוד אחת (!).

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

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

Searching in grails apps

לדוגמא שלנו נתקין תוסף שנקרא searchable. התוסף עושה שימוש בשני פרויקטים שכדאי להכיר:

Lucene – פרויקט מנוע חיפוש בקוד פתוח של Apache. כדאי מאוד להכיר את הפרויקט ופרויקטים בנים שלו שקשורים לעולם של מנועי חיפוש כמו רובוטים לזחילה באינטרנט, עיבוד מידע מתקדם וכו'.

Compass – פרויקט שמקל על האינטגרציה של Lucene לתוך אפליקציות.

לאחר התקנת התוסף, נוסיף את השורה הבאה לישויות שאנו רוצים להכליל בחיפוש:

static searchable = true

זה הכל! כמו שאמרתי – שורה אחת (כמובן שורה אחת שלנו, והרבה שורות של מי שכתב את הקוד).

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s