Synonyme definieren

Organisationen haben oft eine einheitliche Terminologie oder mehrere Möglichkeiten, auf dasselbe Konzept zu verweisen. Wenn Sie Synonyme definieren, legen Sie fest, welche Begriffe austauschbar verwendet werden können. Das hilft Nutzern, bei der Suche nach Artikeln die richtigen Ergebnisse zu finden.

Wenn Sie Synonyme definieren wollen, lassen Sie Elemente mit dem bekannten Schema _dictionaryEntry indexieren.

Elemente vom Typ _dictionaryEntry können die folgenden Attribute haben:

Attribut Typ Beschreibung Erforderlich?
_term string Der Begriff, für den ein Synonym festgelegt werden soll. Empfohlene Werte sind Wörter ohne Bindestriche oder Wortgruppen ohne Interpunktion. Erforderlich
_synonym string (repeated) Alternative Abfragebegriffe, die mit dem String in _term übereinstimmen. Erforderlich
_onlyApplicableForAttachedSearchApplications boolean Hiermit lassen sich Synonyme nach Datenquelle und Suchanwendung gruppieren. Weitere Informationen finden Sie unter Synonyme für bestimmte Datenquellen definieren. Optional

Wenn ein Nutzer einen _term-Wert in eine Anfrage einfügt, wird die effektive Anfrage zu „Begriff ODER Synonyme“. Wenn Sie beispielsweise "scifi" mit dem Synonym "science fiction" definieren, werden bei einer Anfrage für "scifi" Elemente mit einem der beiden Begriffe zurückgegeben.

Synonyme sind standardmäßig nicht bidirektional. Eine Anfrage für "science fiction" entspricht nur dieser genauen Wortgruppe, es sei denn, Sie definieren sie auch als Begriff mit "scifi" als Synonym. Wenn Sie Synonyme bidirektional verwenden möchten, müssen Sie sie für jeden Begriff einzeln bestimmen:

Begriff Synonyme
scifi science fiction
science fiction scifi

Bei der Verarbeitung von Anfragen werden Bindestriche und Satzzeichen entfernt, bevor Synonyme angewendet werden. Eine Anfrage für "sci-fi" entspricht dem Begriff "sci fi". Wenn Sie Begriffe mit Bindestrich unterstützen möchten, müssen Sie für _term festlegen, dass Leerzeichen anstatt von Bindestrichen verwendet werden.

Beispiele für austauschbare Begriffe:

Begriff Synonyme
scifi science fiction, sci fi
sci fi science fiction, scifi
science fiction scifi, sci fi

Standardmäßig gelten Synonyme für die gesamte Domain und alle Suchanwendungen. Informationen zum Einschränken von Synonymen finden Sie unter Synonyme für bestimmte Datenquellen definieren.

Globale Synonyme mit dem SDK definieren

Mit dem Content Connector SDK können Sie Begriffe und Synonyme definieren. Weitere Informationen finden Sie unter Inhaltsconnector erstellen.

In diesem Snippet wird ein RepositoryDoc aus einem CSV-Eintrag erstellt:

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();
}

Wichtige Hinweise:

  • Für Synonymeinträge muss die Einstellung „domain public“ verwendet werden. Sie können die ACL beispielsweise auf DOMAIN_PUBLIC_ACL festlegen.
  • Vermeiden Sie Einstellungen in Ihrer Konfigurationsdatei, die diese überschreiben, z. B. defaultAcl.mode=FALLBACK oder defaultAcl.public=true.

Synonyme für bestimmte Suchanwendungen definieren

Wenn Sie teamspezifische Synonyme angeben möchten (z.B. für Entwicklung und Vertrieb), indexieren Sie jedes Synonym mit _onlyApplicableForAttachedSearchApplications=true. Dadurch werden die Synonyme auf Suchanwendungen beschränkt, die die jeweilige Datenquelle enthalten.

Beispiel:

structuredData.put("_onlyApplicableForAttachedSearchApplications", true);