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

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

يتم تحديد المرادفات من خلال فهرسة العناصر باستخدام مخطط _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) لموصِّل المحتوى لتحديد العبارات ومرادفاتها. راجِع إنشاء موصِّل محتوى للحصول على تعليمات حول إنشاء موصِّل.

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