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

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

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

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

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

عندما يدرج المستخدم قيمة الخاصية _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

يمكنك استخدام 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();
}

يُرجى مراعاة ما يلي عند تحديد المرادفات:

  • يجب أن تكون إدخالات المرادفات متاحة للجميع. في المثال السابق، يتم تحقيق ذلك من خلال ضبط قائمة التحكّم بالوصول على DOMAIN_PUBLIC_ACL.
  • يجب عدم تحديد الخصائص التالية لملف الإعدادات لأنّها تتجاوز الإعداد العام للنطاق في الرمز البرمجي:
    • defaultAcl.mode=FALLBACK
    • defaultAcl.public=true

تحديد المرادفات الخاصة بتطبيق البحث

يتم تلقائيًا تطبيق المرادفات على جميع مصادر البيانات في جميع تطبيقات البحث.

ومع ذلك، لنفترض أنّ مؤسستك تضمّ فريقَي هندسة ومبيعات منفصلَين، وأنّك تريد أن توفّر لكل فريق تجربة بحث مختلفة، بما في ذلك المرادفات الخاصة بدور كل فريق. في هذه الحالة، يمكنك إنشاء تطبيق بحث واحد يتضمّن مصدر بيانات ومترادفات خاصة بالهندسة، وتطبيق بحث آخر يتضمّن مصدر بيانات ومترادفات خاصة بالمبيعات. لتحقيق هذا الهدف، يجب فهرسة كل مرادف في مصدر بيانات معيّن باستخدام _onlyApplicableForAttachedSearchApplications=true. يحدّ هذا الإعداد من المترادفات بحيث لا يتم تطبيقها إلا على تطبيقات البحث التي تتضمّن مصدر بيانات معيّنًا.

على سبيل المثال، يؤدي إضافة سطر الرمز التالي إلى نموذج الرمز السابق إلى ضمان أنّ المترادفات المفهرسة خاصة بمصدر البيانات:

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);