כוונון מנתחי Elasticsearch לחיפוש ביטריקס

משתמש מקליד "laptop", והחיפוש מוצא רק התאמות מדויקות — "laptop". וריאציות כמו "laptops" או "lap" מניבות תוצאות ריקות. או "samsung phone" מחזיר כלום, למרות שהקטלוג מלא בסמסונג. זהו מצב מוכר לבעלי חנויות מקוונות רבות. הבעיה אינה ביטריקס — היא ה
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
כוונון מנתחי Elasticsearch לחיפוש ביטריקס
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    882
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1164

משתמש מקליד "laptop", והחיפוש מוצא רק התאמות מדויקות — "laptop". גרסאות כמו "laptops" או "lap" מחזירות תוצאות ריקות. או ש"samsung phone" לא מחזיר כלום, למרות שהקטלוג מלא במכשירי Samsung. זהו מצב מוכר לבעלי חנויות מקוונות רבות. הבעיה אינה Bitrix — היא הגדרות האנלייזר המוגדרות כברירת מחדל ב-Elasticsearch. מפתחים רבים משאירים את הגדרות ברירת המחדל, מתוך מחשבה ש-Elasticsearch "מחוץ לקופסה" מבין מורפולוגיה. בפועל, ללא אנלייזרים מותאמים אישית, אתם מאבדים 30–50% מהשאילתות הממוקדות. אנו פותרים בעיה זו בעשרות פרויקטים עם קטלוגים הנעים בין 10,000 ל-200,000 פריטים. כוונון אנלייזר Elasticsearch במפתח מלא עם תוצאות מובטחות ותמיכה לאחר השחרור.

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

חיפוש אחר "Dizel" לא מוצא את "Дизель". "Samsung" עומד בנפרד מ"Самсунг". והשאילתה "телефон" לא רואה את "телефоны". זה קורה בשל היעדר גזירה (stemming) ותעתוק. Elasticsearch כברירת מחדל משתמש באנלייזר הסטנדרטי (standard + lowercase). הוא לא מבין מורפולוגיה רוסית ולא יכול להמיר אותיות לטיניות לקיריליות. כתוצאה מכך, תוצאות ריקות מגיעות ל-40% מכלל השאילתות. בפרויקט אחד עם קטלוג חלקי רכב (50,000 פריטים), לאחר הגדרות ברירת מחדל, שיעור התוצאות הריקות היה 37%. לאחר יישום אנלייזרים מותאמים אישית, הוא ירד ל-2%. זה משפיע ישירות על המרות ושביעות רצון המשתמשים. זמן התגובה של החיפוש ירד מ-320 אלפיות השנייה ל-150 אלפיות השנייה (מהיר יותר מפי 2), ושיעור הקליקים (CTR) עלה מ-12% ל-28% (שיפור של פי 2.3). ערך ההזמנה הממוצע גדל ב-15%. החיסכון בטיפול ידני בשגיאות חיפוש הסתכם בכ-€10,000 בשנה.

מידע נוסף על גזירה ניתן לקרוא בוויקיפדיה: Stemming (https://en.wikipedia.org/wiki/Stemming). Snowball הוא אחד מהגוזרים המרכזיים המשמשים ב-Elasticsearch.

הגדרת גזירה לרוסית

בעת הגדרת אנלייזרי Elasticsearch עבור Bitrix, גזירה עוסקת בצמצום מילים לבסיס שלהן (ноутбуки → ноутбук). Elasticsearch תומך בגוזר Snowball לרוסית. אנו מוסיפים אותו לשרשרת הפילטרים יחד עם russian_stop (מילות עצירה) ו-asciifolding (תעתוק). להשלמה אוטומטית, אנו משתמשים ב-edge n-grams.

דוגמה להגדרת אנלייזר:

{ "settings": { "analysis": { "filter": { "russian_stop": { "type": "stop", "stopwords": "_russian_" }, "russian_stemmer": { "type": "stemmer", "language": "russian" }, "edge_ngram_filter": { "type": "edge_ngram", "min_gram": 2, "max_gram": 20 } }, "analyzer": { "bitrix_russian": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "russian_stop", "russian_stemmer", "asciifolding" ] }, "bitrix_autocomplete": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "edge_ngram_filter" ] } } } } } 

טבלת פילטרים והשפעתם:

פילטר מה הוא עושה דוגמה
lowercase ממיר את כל האותיות לאותיות קטנות «Ноутбук» → «ноутбук»
russian_stop מסיר מילות עצירה (и, в, на…) «ноутбук и телефон» → «ноутбук телефон»
russian_stemmer גזירת Snowball «ноутбуки» → «ноутбук»
asciifolding תעתוק (é→e, ü→u) «Samsung» → «samsung»
edge_ngram N-grams להשלמה אוטומטית «теле» ימצא את «телефон»

טיפול בשגיאות כתיב ותעתוק

בנוסף לגזירה, נדרשת הגדרת אנלייזרי Elasticsearch לטיפול בשגיאות כתיב ותעתוק. עבור מותגים, אנו משתמשים ב-char_filter מותאם אישית: לדוגמה, החלפת "Dizel" ב"Дизель" ברמת האינדוקס. זה מיושם באמצעות { "settings": { "analysis": { "filter": { "russian_stop": { "type": "stop", "stopwords": "_russian_" }, "russian_stemmer": { "type": "stemmer", "language": "russian" }, "edge_ngram_filter": { "type": "edge_ngram", "min_gram": 2, "max_gram": 20 } }, "analyzer": { "bitrix_russian": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "russian_stop", "russian_stemmer", "asciifolding" ] }, "bitrix_autocomplete": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "edge_ngram_filter" ] } } } } } עם כללי החלפה. זה פותר את הבעיה כאשר אותו מוצר מתועד באותיות לטיניות וקיריליות. ללא פילטר כזה, חיפוש אחר "Samsung" לא ימצא את "Самсунг", ולהיפך. אנו משלבים זאת בתצורת האינדקס הכוללת.

חיבור האנלייזר ל-Bitrix

צרו אינדקס עם ההגדרות הנדרשות לפני תחילת האינדוקס. Bitrix משתמש במודול mapping_char_filter (מחלקה search) וקורא פרמטרים מטבלת Bitrix\Search\Elastic. ניתן לעקוף את ה-mapping דרך הגדרות המודול, אך בטוח יותר ליצור את האינדקס ידנית.

# Удаляем старый индекс, если есть curl -X DELETE http://localhost:9200/bitrix_search_s1 # Создаём с новыми анализаторами curl -X PUT http://localhost:9200/bitrix_search_s1 \ -H "Content-Type: application/json" \ -d '{...выше JSON...}' 
Mapping מלא עם שדות title ו-body
{ "mappings": { "properties": { "body": { "type": "text", "analyzer": "bitrix_russian", "search_analyzer": "bitrix_russian" }, "title": { "type": "text", "analyzer": "bitrix_russian", "fields": { "autocomplete": { "type": "text", "analyzer": "bitrix_autocomplete", "search_analyzer": "bitrix_russian" } } } } } } 

לאחר יצירת האינדקס, בדקו את הטוקניזציה:

curl -X POST "http://localhost:9200/bitrix_search_s1/_analyze" \ -H "Content-Type: application/json" \ -d '{"analyzer": "bitrix_russian", "text": "Ноутбуки ASUS i5"}' # Ожидаемые токены: ["ноутбук", "asus", "i5"] 

השוואה לפני ואחרי

מדד לפני הכוונון אחרי הכוונון
זמן תגובה ממוצע של חיפוש 320 אלפיות השנייה 150 אלפיות השנייה
חלק התוצאות הריקות 37% 2%
שיעור קליקים (CTR) 12% 28%
טיפול בשגיאות כתיב לא כן (עד 2 שגיאות)
ערך הזמנה ממוצע קו בסיס +15%
חיסכון שנתי בתחזוקה €10,000

תהליך

  1. ביקורת — ניתוח ההגדרות הנוכחיות ויומני החיפוש ב-30 הימים האחרונים. זיהוי שאילתות בעייתיות.
  2. עיצוב — בחירת אנלייזרים לקטלוג שלכם. עבור מותגים, יצירת char_filter מותאם אישית עם תעתוק (Samsung ↔ Самсунг).
  3. תצורה — יצירת האינדקס, הגדרת mapping, בדיקה על נתונים לדוגמה.
  4. אינדוקס מחדש — הרצת אינדוקס מלא דרך API או CLI. האינדקס הישן נשאר פעיל עד לסיום.
  5. בדיקות — הרצת 50+ שאילתות מיומן השגיאות. השוואת רלוונטיות.
  6. ניטור — לאחר השחרור, ניטור מהירות האינדוקס ואיכות התוצאות.

מה כלול

  • הגדרת אנלייזר (גזירה, תעתוק, n-grams)
  • Mapping אינדקס מותאם לקטלוג שלכם
  • סקריפט אינדוקס מחדש עם פריסת blue/green
  • תיעוד לשינויים וחזרה לגרסה קודמת
  • אחריות ל-14 יום — אם משהו משתבש, אנו מתקנים בחינם

לוח זמנים ועלות

ההתקנה אורכת בין 2 ל-5 ימים, תלוי בגודל הקטלוג ובמספר השדות. עלות: מ-€500 עד €2000. אנו בשוק למעלה מ-8 שנים וכיווננו חיפוש ל-50+ פרויקטים. לאחר כוונון אנלייזר Elasticsearch עבור Bitrix, אתם חוסכים בתיקון ידני של תוצאות חיפוש: חיסכון אופייני של עד 20% מתקציב התמיכה (€10,000 בשנה). צרו קשר לביקורת חינם של תצורת Elasticsearch שלכם. קבלו ייעוץ — נבחר אנלייזרים לקטלוג שלכם. הזמינו כוונון חיפוש, והלקוחות שלכם ימצאו הכל תוך שניות.