Menentukan sinonim

Organisasi sering kali memiliki terminologi unik atau beberapa cara untuk merujuk pada konsep yang sama. Menentukan sinonim menetapkan kesetaraan istilah, sehingga membantu pengguna menemukan item selama penelusuran.

Tentukan sinonim dengan mengindeks item menggunakan skema populer _dictionaryEntry.

Item berjenis _dictionaryEntry dapat memiliki properti berikut:

Properti Jenis Deskripsi Wajib?
_term string Istilah yang akan ditentukan. Nilai yang disarankan adalah kata tanpa tanda hubung atau frasa tanpa tanda baca. Wajib
_synonym string (repeated) Istilah alternatif yang disertakan dalam kueri yang cocok dengan string yang ditentukan dalam _term. Wajib
_onlyApplicableForAttachedSearchApplications boolean Memungkinkan Anda mengelompokkan sinonim menurut sumber data dan aplikasi penelusuran. Untuk mengetahui informasi selengkapnya, lihat Menentukan sinonim khusus sumber data. Opsional

Saat pengguna menyertakan nilai _term dalam kueri, kueri efektif akan menjadi "term OR sinonim". Misalnya, jika Anda menentukan "scifi" dengan sinonim "science fiction", kueri untuk "scifi" akan cocok dengan item yang berisi salah satu istilah tersebut.

Secara default, sinonim tidak bersifat dua arah. Kueri untuk "science fiction" hanya cocok dengan frasa yang sama persis kecuali jika Anda juga menentukannya sebagai istilah dengan "scifi" sebagai sinonim. Agar istilah dapat dipertukarkan, tentukan setiap istilah secara terpisah:

Istilah Sinonim
scifi science fiction
science fiction scifi

Pemrosesan kueri akan menghapus tanda hubung dan tanda baca sebelum menerapkan sinonim. Kueri untuk "sci-fi" cocok dengan istilah "sci fi". Untuk mendukung istilah dengan tanda hubung, normalkan _term untuk menggunakan spasi, bukan tanda hubung.

Contoh yang dapat dipertukarkan:

Istilah Sinonim
scifi science fiction, sci fi
sci fi science fiction, scifi
science fiction scifi, sci fi

Secara default, sinonim berlaku di seluruh domain dan semua aplikasi penelusuran. Untuk membatasinya, lihat Menentukan sinonim khusus sumber data.

Menentukan sinonim global menggunakan SDK

Gunakan Content Connector SDK untuk menentukan istilah dan sinonim. Lihat Membuat konektor konten untuk mengetahui detailnya.

Cuplikan ini membuat a RepositoryDoc dari catatan 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();
}

Pertimbangan penting:

  • Entri sinonim harus menjadi publik domain. Misalnya, Anda dapat menetapkan ACL ke DOMAIN_PUBLIC_ACL.
  • Hindari setelan di file konfigurasi yang mengganti setelan ini, seperti defaultAcl.mode=FALLBACK atau defaultAcl.public=true.

Menentukan sinonim khusus aplikasi penelusuran

Untuk menyediakan sinonim khusus tim (misalnya, untuk teknik versus penjualan), indeks setiap sinonim dengan _onlyApplicableForAttachedSearchApplications=true. Tindakan ini akan membatasi sinonim ke aplikasi penelusuran yang menyertakan sumber data tertentu.

Contoh:

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);