組織では、同じコンセプトを指し示すのに固有の用語や複数の方法が存在することがよくあります。類義語を定義すると、用語の同等性が確立され、ユーザーが検索時にアイテムを見つけやすくなります。
類義語は、よく知られたスキーマ _dictionaryEntry を使用してアイテムをインデックスに登録することで定義します。
_dictionaryEntry 型のアイテムには次のプロパティがあります。
| プロパティ | タイプ | 説明 | 必須かどうか |
|---|---|---|---|
_term |
string | 定義する用語。推奨値は、ハイフンが付いていない単語または句読点のないフレーズです。 | 必須 |
_synonym |
string (repeated) | _term で定義された文字列に一致するクエリに含まれる別の用語。 |
必須 |
_onlyApplicableForAttachedSearchApplications |
boolean | 同義語をデータソースと検索アプリケーションでグループ化できます。詳細については、データソース固有の類義語を定義するをご覧ください。 | 省略可 |
ユーザーがクエリに _term 値を含めると、有効なクエリは「term OR synonyms」になります。たとえば、"scifi" を類義語 "science
fiction" で定義した場合、"scifi" のクエリは、いずれかの用語を含むアイテムと一致します。
デフォルトでは、類義語は双方向ではありません。"science fiction" のクエリは、"scifi" を同義語として使用する用語としても定義しない限り、そのフレーズに完全一致します。用語を交換可能にするには、各用語を個別に定義します。
| 用語 | 類義語 |
|---|---|
| scifi | science fiction |
| science fiction | scifi |
クエリ処理では、類義語を適用する前にハイフンや句読点が削除されます。"sci-fi" のクエリは "sci fi" という用語と一致します。ハイフンでつなぐ用語をサポートするには、ハイフンの代わりに空白文字を使用するように _term を正規化します。
交換可能な例:
| 用語 | 類義語 |
|---|---|
| scifi | science fiction, sci fi |
| sci fi | science fiction, scifi |
| science fiction | scifi, sci fi |
デフォルトでは、類義語はドメイン全体とすべての検索アプリケーションに適用されます。制限するには、データソース固有の類義語を定義するをご覧ください。
SDK を使用してグローバル同義語を定義する
コンテンツ コネクタ SDK を使用して、用語と同義語を定義します。詳細については、コンテンツ コネクタを作成するをご覧ください。
このスニペットは、CSV レコードから RepositoryDoc を構築します。
重要な考慮事項:
- 類義語エントリはドメイン公開にする必要があります。たとえば、ACL を
DOMAIN_PUBLIC_ACLに設定できます。 - 構成ファイルで、
defaultAcl.mode=FALLBACKやdefaultAcl.public=trueなど、この設定をオーバーライドする設定は避けてください。
検索アプリケーション固有の類義語を定義する
チーム固有の同義語(エンジニアリングとセールスなど)を指定するには、各同義語に _onlyApplicableForAttachedSearchApplications=true を使用してインデックスを付けます。これにより、シノニムは特定のデータソースを含む検索アプリケーションに制限されます。
例:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);