הוספתי חיפוש לאתר

בגלל הארכיטקטורה המיוחדת והלא שגרתית של אחסון המאמרים והמדורים הטקסטואליים באתר שלי — שבו האתר בנוי על בסיס קובצי טקסט ו-JSON שמקושרים זה לזה בצורה מיוחדת — הייתי צריך לגשת לתהליך החיפוש בצורה יצירתית.
כרגיל, התחלתי מהמצאת הגלגל מחדש — הפעולה האהובה עליי, כי מעניין אותי איך הכול עובד ואיך הכול בנוי. יצרתי סקריפט לאינדוקס של מפת האתר לפי שפות, לסריקה של כל הדפים ולבניית אינדקס של טוקנים שאני יוצר על סמך הכותרת, טקסט התקציר וטקסט המאמר, וכמובן שגם מילות המפתח נלקחות בחשבון.
אחר כך אני שומר את כל הטוקנים והקישורים למאמרים המתאימים בקובץ נפרד לכל שפה. את סקריפט החיפוש לפי הטוקנים כתבתי ב-JS, והוא מחפש במהירות בטקסט על בסיס הטוקנים, עם המרות פשוטות של Damerau-Levenshtein. זה מאפשר לא לעשות חיפוש סמנטי מורכב, אבל זה מספיק כדי למצוא את הטקסט המבוקש לפי מילים דומות בצליל והתאמות חלקיות כבר בזמן ההקלדה. זה עובד "על הדרך" וצורך רק את המשאבים של המחשב המקומי, בלי עומס על השרת.
אני לא יכול לומר שהחיפוש מושלם, אבל לצרכים שלי הוא מספיק. מוזמנים להשתמש.