משתמש מקליד 'mobile' — לא נמצאו מוצרים. מנסה 'cellphone' — שוב ריק. קטלוג של 50,000 פריטים, אבל החיפוש נתקל במחסום לקסיקלי: רק 'phone' מופיע בכותרות המוצרים. זו נקודת כאב טיפוסית לחנויות מקוונות על 1C-Bitrix. התוצאה — אובדן מכירות ושיעורי נטישה גבוהים. הניסיון שלנו מראה שהוספת מילים נרדפות ב-Elasticsearch מפחיתה תוצאות חיפוש ריקות ב-30–50% ומגדילה את המרת החיפוש ב-15–25%. עבור חנות עם ערך הזמנה ממוצע של $100 ו-10,000 חיפושים ביום, זה הכנסה נוספת של עד $500 ליום.
מילים נרדפות ב-Elasticsearch הן קשר בין אוצר המילים של המשתמש למונחים בפועל באינדקס. הן מיושמות דרך מסנן ה-token /etc/elasticsearch/analysis/synonyms_ru.txt באנלייזר. אנו מגדירים אותן מקצה לקצה: מאיסוף המילון ועד לבדיקה סופית של תוצאות החיפוש. המהנדסים המוסמכים שלנו עם ניסיון של 5+ שנים מבטיחים הגדרה נכונה ללא פגיעה בביצועים.
היכן מילים נרדפות משתלבות בשרשרת Elasticsearch
מילים נרדפות מתווספות כמסנן token באנלייזר. הן יכולות לפעול בשתי דרכים:
| שיטה | תיאור | מקרה שימוש |
|---|---|---|
| הרחבה | 'mobile cellphone smartphone' → כל הווריאנטים מתרחבים לסט מלא | מתאים לתגיות שבהן יש צורך בכיסוי מקיף של וריאציות |
| כיווץ | 'mobile', 'cellphone', 'phone' → 'phone' — כל המילים הנרדפות מתכנסות לצורה בסיסית | אופטימלי לקטלוגי מוצרים שבהם דיוק התוצאות חשוב |
עבור קטלוג Bitrix, כיווץ בזמן החיפוש עדיף: אינדוקס כפי שהוא, כיווץ מילים נרדפות לצורה קנונית בעת חיפוש. כיווץ יעיל ב-30-50% יותר מהרחבה עבור קטלוגי מוצרים מכיוון שהוא מקטין את גודל האינדקס ומשפר את הרלוונטיות.
למה כיווץ עדיף לקטלוג Bitrix
כיווץ אינו דורש אינדוקס מחדש של נתונים — מילים נרדפות מיושמות רק ב-# Мобильные телефоны мобильник, сотовый, смартфон => телефон iPhone, айфон => телефон Galaxy, галакси => телефон # Ноутбуки ноутбук, лэптоп, laptop => ноутбук MacBook, макбук => ноутбук # Брендовые синонимы Samsung, самсунг, самsung => samsung LG, элджи => lg # Общие термины ТВ, телик, теле => телевизор холодильник, холодос => холодильник # Аббревиатуры ПК, персональный компьютер => компьютер ОЗУ, оперативка, RAM => память . ניתן לשנות את המילון יומית מבלי לגעת במוצרים המאונדקסים. הרחבה, לעומת זאת, מאלצת אינדוקס של כל הווריאנטים האפשריים, מה שמוביל לגידול מיותר בנפח ולירידה בדיוק. התיעוד הרשמי של Elasticsearch ממליץ על כיווץ עבור מערכות ייצור (ראה מסמכי מסנן token של מילים נרדפות ב-Elasticsearch).
קובץ מילים נרדפות והפורמט שלו
מילים נרדפות מאוחסנות בקובץ על שרת Elasticsearch או מועברות inline בהגדרות האינדקס. גישת הקובץ גמישה יותר — ניתן לעדכן את המילון מבלי ליצור מחדש את האינדקס. מילון טיפוסי מכיל 300–500 זוגות של מילים נרדפות.
דוגמה למילון מילים נרדפות
קובץ term1, term2, term3 => canonical_form:
# Мобильные телефоны мобильник, сотовый, смартфон => телефон iPhone, айфон => телефон Galaxy, галакси => телефон # Ноутбуки ноутбук, лэптоп, laptop => ноутбук MacBook, макбук => ноутбук # Брендовые синонимы Samsung, самсунг, самsung => samsung LG, элджи => lg # Общие термины ТВ, телик, теле => телевизор холодильник, холодос => холодильник # Аббревиатуры ПК, персональный компьютер => компьютер ОЗУ, оперативка, RAM => память פורמט: term1, term2, term3 לכיווץ, או curl -X PUT http://localhost:9200/bitrix_search_s1 \ -H "Content-Type: application/json" \ -d '{ "settings": { "analysis": { "filter": { "russian_stemmer": { "type": "stemmer", "language": "russian" }, "russian_synonyms": { "type": "synonym", "synonyms_path": "analysis/synonyms_ru.txt", "updateable": true } }, "analyzer": { "bitrix_search": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "russian_stemmer", "russian_synonyms" ] }, "bitrix_index": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "russian_stemmer" ] } } } }, "mappings": { "properties": { "title": { "type": "text", "analyzer": "bitrix_index", "search_analyzer": "bitrix_search" }, "body": { "type": "text", "analyzer": "bitrix_index", "search_analyzer": "bitrix_search" } } } }' להרחבה.
השוואת שיטות אחסון מילים נרדפות
| פרמטר | שיטת קובץ | שיטת inline |
|---|---|---|
| עדכון ללא אינדוקס מחדש | כן (עם updateable: true) | לא |
| קלות עריכה | גבוהה (דרך SSH) | בינונית (דרך API) |
| גודל מילון | בלתי מוגבל | מוגבל על ידי גודל הבקשה |
| ביצועים | יציבים | עלולים להתדרדר עם מילון גדול |
כיצד להגדיר אינדקס עם מילים נרדפות
curl -X PUT http://localhost:9200/bitrix_search_s1 \ -H "Content-Type: application/json" \ -d '{ "settings": { "analysis": { "filter": { "russian_stemmer": { "type": "stemmer", "language": "russian" }, "russian_synonyms": { "type": "synonym", "synonyms_path": "analysis/synonyms_ru.txt", "updateable": true } }, "analyzer": { "bitrix_search": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "russian_stemmer", "russian_synonyms" ] }, "bitrix_index": { "type": "custom", "tokenizer": "standard", "filter": [ "lowercase", "russian_stemmer" ] } } } }, "mappings": { "properties": { "title": { "type": "text", "analyzer": "bitrix_index", "search_analyzer": "bitrix_search" }, "body": { "type": "text", "analyzer": "bitrix_index", "search_analyzer": "bitrix_search" } } } }' נקודה מרכזית: ה-# Редактируем файл синонимов nano /etc/elasticsearch/analysis/synonyms_ru.txt # Перезагружаем анализаторы без переиндексации curl -X POST "http://localhost:9200/bitrix_search_s1/_reload_search_analyzers" (לאינדוקס) וה-"russian_synonyms": { "type": "synonym", "synonyms": [ "мобильник, сотовый => телефон", "ноутбук, лэптоп => ноутбук", "телик, ТВ => телевизор" ] } (לחיפוש) שונים. מילים נרדפות רק ב-# Проверить, как search_analyzer обрабатывает запрос curl -X POST "http://localhost:9200/bitrix_search_s1/_analyze" \ -H "Content-Type: application/json" \ -d '{ "analyzer": "bitrix_search", "text": "мобильник самсунг" }' # Ожидаемый ответ: токены "телефон", "samsung" —זו הפרקטיקה הטובה ביותר. במהלך אינדוקס, אין צורך ב-tokens נוספים; אנו מרחיבים את התוצאות רק בזמן החיפוש.
כיצד לעדכן מילים נרדפות ללא אינדוקס מחדש?
הפרמטר updateable: true במסנן המילים הנרדפות (Elasticsearch 7.3+) מאפשר עדכון המילון ללא יצירת האינדקס מחדש:
# Редактируем файл синонимов nano /etc/elasticsearch/analysis/synonyms_ru.txt # Перезагружаем анализаторы без переиндексации curl -X POST "http://localhost:9200/bitrix_search_s1/_reload_search_analyzers" זה עובד רק עבור search_analyzer. אם מילים נרדפות נמצאות באנלייזר index, נדרש אינדוקס מלא מחדש.
מילים נרדפות דרך API (ללא קובץ)
עבור מילונים קטנים, ניתן להעביר מילים נרדפות inline ישירות במיפוי:
"russian_synonyms": { "type": "synonym", "synonyms": [ "мобильник, сотовый => телефон", "ноутбук, лэптоп => ноутбук", "телик, ТВ => телевизор" ] } חיסרון: כדי לעדכן, יש צורך ליצור מחדש את האינדקס ולאנדקס נתונים מחדש.
בדיקת פונקציונליות המילים הנרדפות
# Проверить, как search_analyzer обрабатывает запрос curl -X POST "http://localhost:9200/bitrix_search_s1/_analyze" \ -H "Content-Type: application/json" \ -d '{ "analyzer": "bitrix_search", "text": "мобильник самсунг" }' # Ожидаемый ответ: токены "телефон", "samsung" אם מילים נרדפות פועלות כראוי, שאילתת החיפוש 'mobile' תמצא מסמכים עם ה-token 'phone' באינדקס.
הגדרת מילים נרדפות שלב אחר שלב עבור Bitrix
- איסוף ליבה סמנטית: זיהוי שאילתות תכופות שאינן מניבות תוצאות.
- הרכבת מילון מילים נרדפות בפורמט כיווץ, תוך שימוש בקובץ שרת.
- הגדרת מיפוי אינדקס: ציון אנלייזרים שונים לאינדוקס ולחיפוש.
- החלת התצורה וטעינה מחדש של אנלייזרי החיפוש.
- בדיקת הפלט דרך
_analyzeובלוח הניהול של Bitrix. - הפעלת ניטור: מעקב אחר תוצאות ריקות והתאמת המילון.
מה כלול בהגדרת מילים נרדפות במפתח פתוח
- ביקורת של סכמת החיפוש הנוכחית וזיהוי 'נקודות עיוורות'
- פיתוח מילון מילים נרדפות מותאם לקטלוג (300–500 זוגות)
- הגדרת אנלייזרים, מיפוי וקבצי מילים נרדפות
- עדכון תצורת Elasticsearch ללא השבתה
- תיעוד להוספת מילים נרדפות חדשות
- בדיקה והתאמה של תוצאות החיפוש
- העברת זכויות גישה ניהוליות לפאנל ניהול המילון
- חודש תמיכה חינם לאחר המסירה
- תוצרים: סקריפטים להגדרה, קובץ מילים נרדפות, תיעוד גישה, מפגש הדרכה לצוות שלך
לוח זמנים: בין 2 ל-5 ימי עסקים בהתאם לגודל הקטלוג. המחיר מתחיל ב-$1,500 עבור קטלוג עד 50,000 פריטים. צור קשר לייעוץ והזמן את ההגדרה כבר עכשיו.
הניסיון והערבויות שלנו
אנו עובדים עם Elasticsearch בשילוב 1C-Bitrix כבר למעלה מ-5 שנים. השלמנו יותר מ-50 פרויקטים של הגדרת חיפוש לחנויות מקוונות. אנו מבטיחים ביצועים יציבים של מילים נרדפות ללא אובדן מהירות — כל התצורות עוברות בדיקות עומס. אנו מספקים תעודת התאמה ותמיכה חינם למשך חודש לאחר המסירה.
לעיון מעמיק, אנו ממליצים על התיעוד הרשמי של Elasticsearch ו-ויקיפדיה על חיפוש טקסט מלא.







