組織では、固有の用語や同じコンセプトを指す複数の方法が存在することがよくあります。類義語を定義することで用語の同等性が確立され、ユーザーが検索時にアイテムを見つけやすくなります。
類義語を定義するには、よく知られたスキーマ _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);