1С-Bitrix: הגדרה, אופטימיזציה והתאמה אישית של הצעות חיפוש
תארו לעצמכם: משתמש מזין שאילתה באתר שלכם, אבל לא מופיעות הצעות. או שהן מציגות הכל חוץ ממוצרי הקטלוג בפועל. שיעור ההמרה של החיפוש יורד ב-20-30%. נתקלנו בפרויקטים שבהם רכיב bitrix:search.suggest הסטנדרטי אינו מחובר או עובד על נתונים שגויים. במאמר זה נסקור כיצד להגדיר, לבצע אופטימיזציה ולהתאים אישית הצעות חיפוש ב-1С-Bitrix כדי לקצר את זמן החיפוש ולשפר את שביעות רצון הלקוחות.
מדוע הצעות סטנדרטיות נכשלות לעיתים קרובות
הסיבה העיקרית היא מקור נתונים לא תואם. רכיב search.suggest שולף נתונים מאינדקס החיפוש הכללי b_search_content. אם האינדקס לא נבנה או לא נבנה עבור הסעיפים הדרושים, ההצעות יהיו ריקות. השגיאה הנפוצה השנייה היא START_SEARCH_FORM_ID שגוי. לטופס החיפוש חייב להיות מזהה (ID), ויש להעביר את המזהה הזה לרכיב. אחרת, בקשת ה-AJAX פשוט לא תיקשר לשדה הקלט. שלישית, חוסר סינון לפי בלוקי מידע: ללא arrFILTER, ההצעות עשויות להציג דפים מסעיפים אחרים, כמו חדשות או מאמרים.
כיצד להגדיר את רכיב search.suggest
דוגמה לקריאה לרכיב בתבנית טופס חיפוש:
$APPLICATION->IncludeComponent('bitrix:search.suggest', '', [ 'SITE_ID' => SITE_ID, 'START_SEARCH_FORM_ID' => 'searchForm', 'SUGGEST_MAX_COUNT' => 10, 'MIN_QUERY_LENGTH' => 3, 'SUGGEST_CACHE_TIME' => 3600, 'FILTER_NAME' => 'arrFILTER', 'arrFILTER' => [ ['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5], ], ]); הטופס חייב לכלול שדה קלט עם $APPLICATION->IncludeComponent('bitrix:search.suggest', '', [ 'SITE_ID' => SITE_ID, 'START_SEARCH_FORM_ID' => 'searchForm', 'SUGGEST_MAX_COUNT' => 10, 'MIN_QUERY_LENGTH' => 3, 'SUGGEST_CACHE_TIME' => 3600, 'FILTER_NAME' => 'arrFILTER', 'arrFILTER' => [ ['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5], ], ]); ו-name="q" התואם ל-id. חשוב: אם יש לכם מספר טפסי חיפוש, צרו רכיב נפרד לכל אחד. שימו לב לפרמטר START_SEARCH_FORM_ID — הוא מגדיר את שם משתנה הסינון המועבר ל-FILTER_NAME. זה מאפשר לדייק אילו רכיבים מתווספים לאינדקס עבור ההצעות.
כיצד להתאים אישית את מראה ההצעות
תבנית הרכיב ברירת המחדל ממוקמת ב-arrFILTER. לצורך התאמה אישית, העתיקו אותה ל-/bitrix/components/bitrix/search.suggest/templates/.default/. בתבנית המותאמת, ניתן להוסיף תמונות, מחירים ומספרי פריט. לאחר קבלת מזהי הרכיבים, בצעו שאילתה נוספת דרך /local/components/bitrix/search.suggest/templates/custom/ והזריקו את הנתונים ל-HTML. זה מגדיל את זמן התגובה, אבל אנחנו מפצים על כך באמצעות מטמון. לדוגמה, ההצעות יכולות להציג תמונה ממוזערת של המוצר, מחיר מוזל וכמות במלאי. פירוט כזה מעלה את שיעור ההקלקות. הצעות מותאמות אישית עולות על הסטנדרטיות פי 2.5 בהמרה, כפי שמראים הפרויקטים שלנו.
| פרמטר | הצעות סטנדרטיות | הצעות מותאמות אישית |
|---|---|---|
| תוכן | טקסט בלבד | טקסט + תמונה + מחיר + מק"ט |
| זמן טעינה | 100-200 אלפיות השנייה | 200-400 אלפיות השנייה (עם מטמון) |
| המרת חיפוש | 2-5% | 8-12% |
כיצד להאיץ בקשת AJAX
תחת תעבורה גבוהה, בקשת הצעות AJAX עלולה להעמיס על השרת. ההמלצות שלנו:
- הגדילו את
CIBlockElement::GetListל-3600-7200 שניות (התגובות נשמרות במטמון קבצים). - הפעילו מטמון מנוהל עבור הרכיב.
- לפרויקטים עם עומסים העולים על 10,000 בקשות ליום, צרו נקודת קצה נפרדת המשרתת JSON מוכן מראש עם TTL של 10-15 דקות.
- השתמשו במטמון מתויג (tagged cache) לביטול תוקף בעת שינוי מוצרים.
אחד ממקרי הבוחן שלנו: חנות מקוונת עם 50,000 מוצרים. לאחר הגדרת מטמון ואופטימיזציה של שאילתות, זמן תגובת ההצעות ירד מ-800 אלפיות השנייה ל-150 אלפיות השנייה, ועומס השרת ירד פי 5, מה שאיפשר טיפול בשיא של 2000 בקשות לדקה ללא ירידה בביצועים.
| הגדרת מטמון | זמן תגובה (אלפיות השנייה) |
|---|---|
| ללא מטמון | 800 |
| SUGGEST_CACHE_TIME = 3600 | 200 |
| מטמון מתויג + נקודת קצה | 150 |
דוגמה להגדרת סינון לקטלוג
$APPLICATION->IncludeComponent('bitrix:search.suggest', '', [ 'SITE_ID' => SITE_ID, 'START_SEARCH_FORM_ID' => 'searchForm', 'SUGGEST_MAX_COUNT' => 10, 'MIN_QUERY_LENGTH' => 3, 'SUGGEST_CACHE_TIME' => 7200, 'FILTER_NAME' => 'arrFILTER', 'arrFILTER' => [ ['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5], ], ]); מה כולל הגדרת הצעות במפתח מלא
- ביקורת של אינדקס החיפוש הנוכחי והגדרת אינדוקס מחדש.
- חיבור והגדרה של רכיב
SUGGEST_CACHE_TIMEעם סינון קטלוג. - התאמה אישית של תבנית (הצגת תמונה, מחיר, מק"ט, קישור).
- מטמון ואופטימיזציה של ביצועים (מטמון מתויג, נקודת קצה).
- אינטגרציה עם ניהול מק"ט — אינדוקס נפרד של מאפייני מק"ט.
- תיעוד והדרכה למפתחים שלכם.
שגיאות נפוצות ופתרונות
- הצעות לא מופיעות: בדקו אם אינדקס החיפוש נבנה (הגדרות → חיפוש → אינדוקס מחדש).
- הצגת מוצרים מסעיף אחר: ציינו
$APPLICATION->IncludeComponent('bitrix:search.suggest', '', [ 'SITE_ID' => SITE_ID, 'START_SEARCH_FORM_ID' => 'searchForm', 'SUGGEST_MAX_COUNT' => 10, 'MIN_QUERY_LENGTH' => 3, 'SUGGEST_CACHE_TIME' => 7200, 'FILTER_NAME' => 'arrFILTER', 'arrFILTER' => [ ['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5], ], ]);עם פרמטרי בלוק המידע הנכונים. - אין הצעות למק"טים: הפעילו אינדוקס של מאפייני מק"ט בהגדרות החיפוש.
- תגובות איטיות: הגדירו מטמון והגדילו את
search.suggest.
לוחות זמנים ועלות
הגדרה בסיסית אורכת בין שעתיים ליום אחד. אינטגרציה של תבנית מותאמת אישית אורכת בין 2 ל-5 ימים. העלות המדויקת נקבעת לאחר ניתוח הפרויקט שלכם. צרו קשר להערכה — נכין הצעה מסחרית עם אחריות לאיכות. החיסכון בתמיכת חיפוש לאחר ההגדרה יכול להגיע עד 5,000 דולר בשנה.
למה לבחור בנו
עם ניסיון של למעלה מ-10 שנים בפיתוח Bitrix ויותר מ-40 פרויקטים מוצלחים, אנו מספקים פתרונות חיפוש אמינים המשפרים את חוויית המשתמש ואת מדדי העסק.
קבלו ייעוץ חינם על אופטימיזציה של חיפוש. הזמינו הגדרה מקצועית של הצעות חיפוש, ונכין פתרון מותאם לפרויקט שלכם.
תיעוד רשמי: רכיב search.suggest מומלץ גם: השלמה אוטומטית בוויקיפדיה







