הגדרה של מילים נרדפות

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

מילים נרדפות מוגדרות על ידי הוספה לאינדקס של פריטים בעלי המודע _dictionaryEntry של Google.

לפריטים מסוג _dictionaryEntry יכולים להיות המאפיינים הבאים:

נכס סוג תיאור חובה?
_term string המונח שצריך להגדיר. הערכים המומלצים הם מילים או ביטויים ללא מקף וללא סימני פיסוק. חובה
_synonym string (repeated) מונחים חלופיים שייכללו בשאילתות תואמות למחרוזת שמוגדרת ב-_term. חובה
_onlyApplicableForAttachedSearchApplications boolean אפשר לקבץ מילים נרדפות לפי מקור נתונים ואפליקציית חיפוש. מידע נוסף זמין במאמר הגדרת מילים נרדפות שספציפיות למקור נתונים. אופציונלי

כשמשתמש כולל בשאילתה את הערך של המאפיין _term, השאילתה האפקטיבית הופכת ל"מונח או מילים נרדפות". לדוגמה, אם המונח "scifi" מוגדר עם המילה הנרדפת "science fiction" ואז שאילתה שמכיל את המילה "scifi" תואם לפריטים שמכילים "scifi" או "science fiction."

מילים נרדפות לא מיושמות באופן דו-כיווני. אם השאילתה היא במקום זאת Cloud Search של "science fiction," לא מחילה מילים נרדפות על השאילתה. השאילתה מתאימה רק לפריטים שמכילים "science fiction." פריטים שמכילים "scifi" לא נכללים.

כדי שאפשר יהיה להחליף בין שני המונחים, צריך להגדיר כל אחד מהמונחים בנפרד:

מונח מילים נרדפות
scifi science fiction
science fiction scifi

במהלך עיבוד השאילתה, המקף וסימני פיסוק אחרים מוסרים לפני לשימוש במילים נרדפות. שאילתת המשתמש: "sci-fi" תואם ל-_term מסוג "sci fi." כדי ליצור מילים נרדפות למונחים שמשתמשים עשויים להקליד במקף, תחילה צריך לנרמל את _term כדי להשתמש ברווח לבן במקום במקפים.

בהמשך לדוגמה, ההגדרות הבאות תואמות להגדרות של שאילתות המשתמשים "sci-fi," "sci fi," "scifi," והקבוצה "science fiction" ניתנת להחלפה:

מונח מילים נרדפות
scifi science fiction, sci fi
sci fi science fiction, scifi
science fiction scifi, sci fi

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

הגדרת מילים נרדפות גלובליות באמצעות Cloud Search SDK

תוכלו להשתמש ב-Content Connector SDK כדי להגדיר מונחים ואת המילים הנרדפות שלהם. צפייה יוצרים מחבר תוכן עבור ההוראות לפיתוח מחבר.

הקטע הבא מדגים בניית מודל RepositoryDoc שמייצג את המונח והמילה הנרדפת על סמך רשומה בקובץ CSV:

DictionaryConnector.java
/**
 * Creates a document for indexing.
 *
 * For this connector sample, the created document is domain public
 *  searchable. The content is a simple text string.
 *
 * @param record The current CSV record to convert
 * @return the fully formed document ready for indexing
 */
private ApiOperation buildDocument(CSVRecord record) {
  // Extract term and synonyms from record
  String term = record.get(0);
  List<String> synonyms = StreamSupport.stream(record.spliterator(), false)
      .skip(1) // Skip term
      .collect(Collectors.toList());

  Multimap<String, Object> structuredData = ArrayListMultimap.create();
  structuredData.put("_term", term);
  structuredData.putAll("_synonym", synonyms);

  if (Configuration.getBoolean("dictionary.attachedToSearchApp", false).get()) {
    structuredData.put("_onlyApplicableForAttachedSearchApplications", true);
  }

  String itemName = String.format("dictionary/%s", term);

  // Using the SDK item builder class to create the item
  Item item =
      IndexingItemBuilder.fromConfiguration(itemName)
          .setItemType(IndexingItemBuilder.ItemType.CONTENT_ITEM)
          .setObjectType("_dictionaryEntry")
          .setValues(structuredData)
          .setAcl(DOMAIN_PUBLIC_ACL)
          .build();

  // Create the fully formed document
  return new RepositoryDoc.Builder()
      .setItem(item)
      .build();
}

חשוב לשים לב לדברים הבאים כשמגדירים מילים נרדפות:

  • הערכים המילים הנרדפות חייבים להיות מוגדרים כנחלת הכלל. בדוגמה הקודמת, ניתן לעשות זאת על ידי הגדרת ה-ACL ל-DOMAIN_PUBLIC_ACL.
  • אין להגדיר את המאפיינים הבאים לקובץ התצורה שלך כי הן מבטלות את הגדרת הדומיין כציבורית בקוד שלכם:
    • defaultAcl.mode=FALLBACK
    • defaultAcl.public=true

הגדרת מילים נרדפות ספציפיות לאפליקציות חיפוש

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

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

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

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);