مترادف ها را تعریف کنید

معمولاً یک سازمان اصطلاحات منحصر به فرد یا راه های متعددی برای اشاره به یک مفهوم یا چیز دارد. شما باید مترادف هایی را برای ایجاد معادل سازی اصطلاحات تعریف کنید تا به کاربران کمک کند موارد را هنگام جستجو پیدا کنند.

مترادف ها با نمایه سازی آیتم ها با طرحواره شناخته شده _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

به طور پیش‌فرض، مترادف‌ها در هر منبع داده در کل دامنه اعمال می‌شوند. به طور خاص، مترادف ها در برنامه های جستجو برای همه جستجوها صرف نظر از منبع داده اعمال می شوند. اگر مترادف های خاص منبع داده را می خواهید، به تعریف مترادف های خاص منبع داده مراجعه کنید.

با استفاده از 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);