חיפוש Fuzzy ב-Elasticsearch: אילוף שגיאות הקלדה עם Fuzziness

משתמשים מרבים להקליד שגיאות במונחי החיפוש, מה שמוביל לתוצאות ריקות ולאובדן לקוחות. אנו מגדירים חיפוש fuzzy ב-Elasticsearch כך שהמערכת מטפלת בשגיאות בצורה נכונה ומוצאת את המוצרים המתאימים. הצוות שלנו מספק את הפרויקט במפתח מלא, החל מניתוח פרופיל החיפוש ועד ליישום ולתמיכה שוטפת.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
חיפוש Fuzzy ב-Elasticsearch: אילוף שגיאות הקלדה עם Fuzziness
בינוני
~2-3 ימים

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

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

משתמשים שמקלידים "naутбук" במקום "ноутбук" או "javascipt" במקום "javascript" עוזבים בלי למצוא את המוצר הנכון. אנחנו פותרים זאת על ידי הגדרת חיפוש fuzzy ב-Elasticsearch. הליבה היא מרחק לוונשטיין: מספר העריכות של תו בודד (הוספה, מחיקה, החלפה, החלפת מקומות) הנדרשות כדי להפוך מחרוזת אחת לאחרת. ראו עוד ב-מרחק לוונשטיין.

שגיאות הקלדה כאלה גורמות לעד 30% מתוצאות חיפוש ריקות בחנויות מסחר אלקטרוני גדולות. המהנדסים שלנו עם 5 שנות ניסיון ב-Elasticsearch מגדירים חיפוש fuzzy מקצה לקצה. אנו מבטיחים ש-99% משגיאות ההקלדה של המשתמשים מטופלות כראוי תוך שמירה על מהירות חיפוש מקובלת גם באינדקסים עם מיליוני מסמכים. בקשו ייעוץ — ננתח את פרופיל החיפוש שלכם ונציע הגדרות אופטימליות.

בחירת fuzziness לפרויקט שלכם

הפרמטר המרכזי הוא fuzziness. הוא קובע כמה עריכות מותרות. AUTO מדויק פי 5 בשאילתות קצרות מאשר fuzziness: 2 קבוע.

ערך תיאור דוגמה עבור "ноутбук" (8 תווים)
0 התאמה מדויקת רק "ноутбук"
1 פעולת עריכה אחת "ноутбук", "ноутбу" (מחיקה)
2 2 עריכות "ноутбук", "наутбук" (החלפה), "ноубук" (מחיקה+החלפה)
AUTO 0 עבור אורך 1-2, 1 עבור 3-5, 2 עבור 6+ עבור "ноутбук" (8) → 2

AUTO הוא אופטימלי ברוב המקרים. כפיית fuzziness: 2 על שאילתות קצרות יוצרת יותר מדי התאמות שגויות.

למה prefix_length קריטי לביצועים

ללא prefix_length, כל טוקן באינדקס הופך למועמד להרחבת fuzzy. עבור אינדקס עם 10M מסמכים, זה יכול לגרום לעשרות אלפי פעולות קלט/פלט. הגדרת prefix_length: 2 מפחיתה את המועמדים בסדר גודל. עבור מסדי נתונים עם מונחים טכניים (קודים, SKU), אנו ממליצים להגדיל ל-3–4.

דוגמה לשאילתת Fuzzy

POST /products/_search
{
  "query": {
    "fuzzy": {
      "title": {
        "value": "наутбук",
        "fuzziness": "AUTO",
        "prefix_length": 2,
        "max_expansions": 50,
        "transpositions": true
      }
    }
  }
}

POST /products/_search { "query": { "fuzzy": { "title": { "value": "наутбук", "fuzziness": "AUTO", "prefix_length": 2, "max_expansions": 50, "transpositions": true } } } } — 2 התווים הראשונים חייבים להתאים בדיוק. בלעדיו, prefix_length על שאילתה של תו אחד "a" יכולה להתאים למספר עצום של טוקנים. הגדירו לפחות 1–2.

fuzziness: 2 — המספר המרבי של וריאציות ששאילתת fuzzy מתרחבת אליהן. ברירת המחדל של 50 בדרך כלל מספיקה.

max_expansions — מאפשר החלפת תווים סמוכים (ab → ba). מופעל כברירת מחדל. זה מתאים למרחק Damerau–Levenshtein.

Fuzzy Query לעומת Match עם Fuzziness

קריטריון Fuzzy Query Match Query עם Fuzziness
ניתוח שאילתה לא, ערך גולמי כן, טוקניזציה ונורמליזציה
יישום לשדה אחד לכל טוקן לאחר ניתוח
צורות דקדוקיות לא נחשבות נחשבות (גזירה, מילים נרדפות)
המלצה למזהים ייחודיים למחרוזות חיפוש של משתמשים

שילוב חיפוש מדויק ו-Fuzzy

הפרקטיקה המומלצת: הרצת חיפושים מדויקים ו-fuzzy במקביל, עם הגברת תוצאות מדויקות לראש:

POST /products/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "multi_match": {
            "query": "наутбук",
            "fields": ["title^3", "description"],
            "boost": 2
          }
        },
        {
          "multi_match": {
            "query": "наутбук",
            "fields": ["title^3", "description"],
            "fuzziness": "AUTO",
            "prefix_length": 2,
            "boost": 1
          }
        }
      ]
    }
  }
}

התאמות מדויקות עם boost transpositions מדורגות גבוה יותר מאשר fuzzy. מסמכים עם התאמות מדויקות עולים לראש; תוצאות fuzzy עדיין מופיעות אך נמוך יותר.

הניסיון שלנו: מקרה חנות אלקטרוניקה

לקוח עם 500K מוצרים נתקל לעתים קרובות בשגיאות הקלדה במותגים: "samsung", "samsun", "samsung". הגדרנו חיפוש fuzzy עם POST /products/_search { "query": { "bool": { "should": [ { "multi_match": { "query": "наутбук", "fields": ["title^3", "description"], "boost": 2 } }, { "multi_match": { "query": "наутбук", "fields": ["title^3", "description"], "fuzziness": "AUTO", "prefix_length": 2, "boost": 1 } } ] } } } ו-2 בשדות כותרת, מותג ותיאור. זמן החיפוש גדל ב-15%, אך שיעור התוצאות הריקות ירד מ-8% ל-0.5%. בנוסף, הוספנו מנתח פונטי (Double Metaphone) למותגים באנגלית. זה חסך כ-30% בתקציב על ידי שימוש בתכונות מובנות של Elasticsearch במקום כלים של צד שלישי.

הגדרת חיפוש Fuzzy שלב אחר שלב

  1. צרו את האינדקס עם מיפויים לשדות הדורשים חיפוש fuzzy.
  2. בחרו מנתח (standard, פונטי אם נדרש).
  3. השתמשו ב-fuzziness: AUTO עם prefix_length: 2 בשאילתות.
  4. הגדירו multi_match לביצועים.
  5. בדקו על מדגם של שגיאות הקלדה אופייניות.
  6. כווננו פרמטרים לפי הצורך.

מה כוללת העבודה שלנו

  • ניתוח שגיאות הקלדה נפוצות ודפוסי חיפוש של המשתמשים שלכם.
  • הגדרת מיפוי אינדקס לחיפוש fuzzy (בחירת שדות, מנתחים).
  • כוונון fuzziness, prefix_length, max_expansions עבור הנתונים שלכם.
  • אופטימיזציית ביצועים (פרופילינג, הגדרות shard).
  • בדיקות על קבוצות שאילתות אמיתיות עם התאמות.
  • תיעוד והעברת גישה.
  • הדרכת הצוות שלכם על שימוש בחיפוש fuzzy.

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

הגדרה בסיסית (fuzziness + פרמטרים) — יום עסקים אחד. אם נדרש ניתוח פונטי או שילוב רוסית-אנגלית מעורב, הוסיפו יום אחד. העלות נקבעת באופן אישי. צרו קשר — נעריך את הפרויקט שלכם. קבלו ייעוץ עכשיו!

מומחי Elastic המוסמכים שלנו (5+ שנות ניסיון) סיפקו למעלה מ-20 פרויקטים של חיפוש fuzzy בסביבת ייצור. אנו מבטיחים: אם התוצאה לא מספקת אתכם, נבצע עבודה חוזרת ללא עלות נוספת.