בעיות בחיפוש ביטריקס: איטי ולא רלוונטי
החיפוש המובנה בביטריקס לרוב מתפקד בצורה גרועה. תסמינים אופייניים: אינדקס לא נבנה — לא נמצא כלום; כל הדפים נמצאים, כולל דפי ניהול; בקטלוג של 50,000 פריטים, החיפוש קופא למשך 30 שניות. הגדרנו עשרות פרויקטים עם נפחי נתונים שונים — מחנויות מקוונות ועד פורטלים ארגוניים. כל מצב דורש גישה שונה. בואו נפרק את המנגנונים והטכניקות המרכזיים שיכולים להאיץ את החיפוש פי 4 ולשפר את הרלוונטיות ב-60%.
הבנה כיצד מודול search בונה את האינדקס היא קריטית לאבחון בעיות. האינדקס מאוחסן בטבלאות b_search_content (תוכן), b_search_content_stem (אינדקס שורשים למורפולוגיה), ו-b_search_tag (תגיות). בעת שמירת רכיב בלוק מידע, האירוע OnSearchIndex מופעל. אם האינדקס לא מתעדכן אוטומטית, בדקו את הגדרות הסוכן ואת יומן האירועים לשגיאות.
ההשלכות של חיפוש איטי או לא רלוונטי הן קריטיות לחנות מקוונת: לקוחות לא מוצאים את המוצר הרצוי ועוזבים למתחרים. עבור פורטל ארגוני, זה פוגע בפרודוקטיביות העובדים. ראינו פרויקטים שבהם לאחר הגדרת חיפוש בסיסית, ההמרה עלתה ב-15% וזמן החיפוש ירד מ-10 שניות ל-0.5. חיסכון במשאבי שרת מגיע ל-30% בזכות הפחתת עומס על מסד הנתונים.
כיצד להגדיר מקורות אינדקס?
הגדרת מקורות (Настройки → Поиск → Настройки модуля):
- שמירת היסטוריית חיפוש — שימושי לאנליטיקה
- מורפולוגיה — הפעל לחיפוש לפי צורות מילה (קנה, קניתי, קונה)
- תווים באינדקס — אורך מילה מינימלי לאינדוקס (מומלץ 3)
בחירת בלוקי מידע לאינדוקס (Настройки → Поиск → Переиндексация):
- בחרו בלוקי מידע לאינדוקס
- ציינו אילו מאפיינים לאינדוקס
- החריגו דפים טכניים ותוכן ניהולי
רכיב חיפוש:
$APPLICATION->IncludeComponent('bitrix:search.page', '', [ 'SITE_ID' => 's1', 'SEARCH_CACHE_TIME' => 3600, 'DEFAULT_WORD' => '', 'MINIMAL_QUERY_LEN' => 3, 'USE_SUGGEST' => 'Y', 'arrFILTER' => [ ['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5], ['MODULE_ID' => 'iblock', 'PARAM1' => 'content'], ], ]); מדוע אינדוקס נכשל בקטלוגים גדולים?
עבור קטלוגים גדולים (מעל 50,000 פריטים), אינדוקס מלא יכול לקחת שעות. הבעיה מחמירה אם כל מאפייני בלוק המידע מאונדקסים ללא הבחנה. הפתרון הוא אינדוקס מצטבר באמצעות סוכנים. אנו מגדירים סוכנים שמעבדים 500 פריטים בכל שלב. עבור פרויקט עם 200,000 פריטים, זמן האינדוקס המלא ירד מ-3 שעות ל-15 דקות. בנוסף, אנו מפעילים מטמון מתויג של רכיב החיפוש — מהירות התגובה עולה פי 4.
אופטימיזציית רלוונטיות: הגדרת משקלים
ביטריקס משתמשת בגזירת שורשים מובנית לשפה הרוסית. עם מורפולוגיה מופעלת, שאילתה עבור "שמלות אדומות" תמצא "שמלה אדומה" ו"שמלות אדומות". אינדקס המורפולוגיה נבנה ב-$APPLICATION->IncludeComponent('bitrix:search.page', '', [ 'SITE_ID' => 's1', 'SEARCH_CACHE_TIME' => 3600, 'DEFAULT_WORD' => '', 'MINIMAL_QUERY_LEN' => 3, 'USE_SUGGEST' => 'Y', 'arrFILTER' => [ ['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5], ['MODULE_ID' => 'iblock', 'PARAM1' => 'content'], ], ]); . הרלוונטיות של התוצאות נשלטת על ידי משקלים: מילה בכותרת — משקל גבוה, בגוף — בינוני, בתגיות — בינוני. ניתן להגדיר משקלים נוספים באמצעות פרמטרים של b_search_content_stem.
הגדרת משקלים נכונה היא המפתח. מילה בכותרת צריכה לשקול פי 5 יותר מאשר בגוף. הערכים מוגדרים בהגדרות המודול או בקוד הרכיב. חשוב גם להחריג דפים לא רלוונטיים: חשבון אישי, סל קניות, אזורי ניהול. עבור קטלוגים עם 100,000 פריטים, אנו משתמשים בפרופילי אינדוקס לסוגי תוכן שונים.
השוואה בין חיפוש סטנדרטי ל-Elasticsearch
| קריטריון | חיפוש סטנדרטי | Elasticsearch |
|---|---|---|
| מהירות אינדוקס | איטי עבור >50 אלף פריטים | מהיר עד פי 10 |
| רלוונטיות | משקלים הניתנים להגדרה | הגדרות גמישות + למידת מכונה |
| מורפולוגיה | גזירת שורשים מובנית | מילונים + מנתחי שפה |
| עומס על מסד הנתונים | גבוה | מועבר לאשכול נפרד |
| מורכבות הטמעה | הגדרה בסיסית 2–4 שעות | 2–5 ימים + פיתוח |
כיצד להאיץ אינדוקס?
| גודל קטלוג | אינדוקס סטנדרטי | מצטבר (סוכנים) | Elasticsearch |
|---|---|---|---|
| 10,000 פריטים | 15 דקות | 5 דקות | 2 דקות |
| 100,000 פריטים | שעתיים | 20 דקות | 5 דקות |
| 500,000 פריטים | 10 שעות | שעה | 15 דקות |
מה כלול בהגדרת חיפוש במפתח פתוח?
אנו מציעים מחזור עבודה מלא, מגובה ב-50+ פרויקטים ועם אחריות לתוצאות:
- ביקורת מצב נוכחי: בדיקת אינדקס, מורפולוגיה, משקלים, יומני שגיאות.
- תכנון ארכיטקטורה על בסיס נפח ומבנה התוכן.
- הגדרת מקורות, החרגת זבל, אופטימיזציית ביצועים.
- אינטגרציה עם Elasticsearch לקטלוגים מעל 200,000 פריטים.
- תיעוד הגדרות והדרכת מנהלים.
- תמיכה לאחר הטמעה (שבועיים בחינם).
לוח זמנים: הגדרה בסיסית — החל משעתיים, כוונון עדין עם מורפולוגיה — החל מ-4 שעות, אינטגרציית Elasticsearch — החל מיומיים. העלות מחושבת באופן אישי לפי נפח נתונים ומורכבות. בממוצע, חיסכון במשאבי שרת מכסה את ההשקעה תוך 3 חודשים.
טעויות נפוצות בהגדרה
- שכחת החרגת חשבון אישי ופאנל ניהול — הם מופיעים בתוצאות החיפוש.
- אי הפעלת מורפולוגיה — החיפוש לא מוצא צורות מילה.
- אינדוקס כל מאפייני בלוק המידע — האינדקס מתנפח, המהירות יורדת.
- אי שימוש במטמון רכיב — כל בקשה פוגעת במסד הנתונים.
להבנה מעמיקה, אני ממליץ לקרוא את המאמר על חיפוש טקסט מלא בוויקיפדיה ואת התיעוד הרשמי של מודול החיפוש.
היכן להזמין הגדרת חיפוש ביטריקס?
צרו קשר להערכה חינמית של הפרויקט שלכם. המומחים שלנו מוסמכים ב-1C-Bitrix, עם ניסיון של 10+ שנים. אנו מבטיחים שהחיפוש ימצא את המוצרים הנכונים תוך שניות ויפחית את עומס השרת פי 2-3. בקשו ייעוץ — נבחן את הפרויקט שלכם תוך יום ונציע את הפתרון האופטימלי.







