組織では、コンセプトやものごとを指し示すのに固有の用語や複数の方法が存在することがよくあります。ユーザーが検索時にアイテムを見つけるのに役立つように、類義語を定義して用語の同等性を確立する必要があります。
類義語は、よく知られたスキーマ _dictionaryEntry
を使用してアイテムをインデックスに登録することで定義します。
_dictionaryEntry
型のアイテムには、次のプロパティがあります。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
_term |
string | 定義する用語。推奨値は、ハイフンが付いていない単語または句読点のないフレーズです。 | 必須 |
_synonym |
string (repeated) | _term で定義された文字列に一致するクエリに含まれる別の用語。 |
必須 |
_onlyApplicableForAttachedSearchApplications |
boolean | 同義語をデータソースと検索アプリケーションでグループ化できます。詳細については、データソース固有の類義語を定義するをご覧ください。 | 省略可 |
ユーザーがクエリに _term
プロパティの値を含めると、有効なクエリは「term OR synonyms」になります。たとえば、用語 "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 を使用してグローバル シノニムを定義する
コンテンツ コネクタ SDK を使用して、用語とその同義語を定義できます。コネクタを構築する方法については、コンテンツ コネクタを作成するをご覧ください。
次のスニペットは、CSV ファイル レコードに基づいて用語と類義語を表す RepositoryDoc
の構築を示しています。
類義語を定義する際は、以下の点に注意してください。
- 類義語エントリはドメイン公開にする必要があります。前述の例では、ACL を
DOMAIN_PUBLIC_ACL
に設定することによってこれを実現しています。 - 次のプロパティはコード内のドメイン公開設定をオーバーライドするため、構成ファイルに定義しないでください。
defaultAcl.mode=FALLBACK
defaultAcl.public=true
検索アプリケーション固有の類義語を定義する
デフォルトでは、類義語はすべての検索アプリケーションのすべてのデータソースに適用されます。
ただし、組織にエンジニアリング チームと営業チームが別々にあり、役職固有の同義語など、各チームに異なる検索エクスペリエンスを提供したいとします。この場合、エンジニアリング固有のデータソースと類義語を含む検索アプリケーションと、営業固有のデータソースと類義語を含む別の検索アプリケーションを作成できます。この目標を達成するには、_onlyApplicableForAttachedSearchApplications=true
を使用して、特定のデータソース内の各シノニムにインデックスを付けます。この設定では、特定のデータソースを含む検索アプリケーションにのみ類義語が適用されるように、類義語を制限します。
たとえば、次のコード行を前のコードサンプルに追加すると、インデックス登録されたシノニムがデータソース固有になります。
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);