組織では、コンセプトやものごとを指し示すのに固有の用語や複数の方法が存在することがよくあります。ユーザーが検索時にアイテムを見つけるのに役立つように、類義語を定義して用語の同等性を確立する必要があります。
類義語は、既知のスキーマ _dictionaryEntry
を使用してアイテムをインデックスに登録することで定義されます。
_dictionaryEntry
型のアイテムには次のプロパティがあります。
プロパティ | タイプ | 説明 | 必須 / 任意 |
---|---|---|---|
_term |
string | 定義する用語。推奨値は、ハイフンが付いていない単語または句読点のないフレーズです。 | 必須 |
_synonym |
string (repeated) | _term で定義された文字列に一致するクエリに含める代替語句。 |
必須 |
_onlyApplicableForAttachedSearchApplications |
boolean | データソースと検索アプリケーション別に類義語をグループ化できます。詳細については、データソース固有の類義語を定義するをご覧ください。 | 任意 |
ユーザーがクエリに _term
プロパティの値を含めると、有効なクエリは「term OR 類義語」になります。たとえば、用語 "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);