تعريف المرادفات

من الشائع أن يكون لدى المؤسسة مصطلحات فريدة أو طرق متعددة للإشارة إلى مفهوم أو شيء. يجب عليك تعريف مرادفات لإنشاء معادلة للمصطلحات لمساعدة المستخدمين في العثور على العناصر عند البحث.

يتم تعريف المرادفات عن طريق فهرسة العناصر التي تستخدم مخطّط _dictionaryEntry المعروف.

يمكن أن تحتوي العناصر من النوع _dictionaryEntry على السمات التالية:

الموقع النوع الوصف مطلوب؟
_term string المصطلح المراد تعريفه. القيم المقترَحة هي كلمات أو عبارات غير واصلة بدون علامات ترقيم. مطلوب
_synonym string (repeated) العبارات البديلة التي سيتم تضمينها في طلبات البحث المطابقة للسلسلة المحدّدة في _term. مطلوب
_onlyApplicableForAttachedSearchApplications boolean للسماح لك بتجميع المرادفات حسب مصدر البيانات وتطبيق البحث. للمزيد من المعلومات، يُرجى الاطّلاع على المقالة تحديد مرادفات مصدر البيانات. اختيارية

عندما يدرج المستخدم قيمة السمة _term في طلب بحث، يصبح طلب البحث فعالاً "term OR مرادفات". على سبيل المثال، إذا تم تعريف العبارة "scifi" بالمرادف "science fiction"، عندئذٍ يتطابق طلب البحث الذي يحتوي على الكلمة "scifi" مع العناصر التي تحتوي على "scifi" أو "science fiction."

لا يتم تطبيق المرادفات بصورة ثنائية الاتجاه. إذا كان طلب البحث بدلاً من ذلك للنطاق "science fiction," Cloud Search، لن يطبِّق طلب البحث أي مرادفات لطلب البحث. يتطابق طلب البحث فقط مع العناصر التي تحتوي على "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

بشكل تلقائي، يتم تطبيق المرادفات في أي مصدر بيانات على النطاق بالكامل. على وجه التحديد، يتم تطبيق المرادفات في جميع تطبيقات البحث لجميع عمليات البحث بغض النظر عن مصدر البيانات. إذا كنت تريد مرادفات خاصة بمصدر البيانات، يمكنك الرجوع إلى تحديد المرادفات الخاصة بمصدر البيانات.

تعريف المرادفات العالمية باستخدام حزمة تطوير البرامج (SDK) لخدمة Cloud Search

يمكنك استخدام حزمة تطوير البرامج (SDK) لـ Content Connector لتحديد المصطلحات ومرادفاتها. اطلع على إنشاء موصِّل محتوى للحصول على إرشادات حول إنشاء موصل.

يوضِّح المقتطف التالي إنشاء 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);