組織では、コンセプトやものごとを指し示すのに固有の用語や複数の方法が存在することがよくあります。ユーザーが検索時にアイテムを見つけるのに役立つように、類義語を定義して用語の同等性を確立する必要があります。
類義語は、よく知られている _dictionaryEntry
スキーマでアイテムをインデックス登録することで定義されます。
_dictionaryEntry
タイプのアイテムには、次のプロパティを設定できます。
プロパティ | タイプ | 説明 | 必須かどうか |
---|---|---|---|
_term |
string | 定義する用語。推奨値は、ハイフンが付いていない単語または句読点のないフレーズです。 | 必須 |
_synonym |
string (repeated) | _term で定義された文字列に一致するクエリに含めることができる代わりの用語。 |
必須 |
_onlyApplicableForAttachedSearchApplications |
boolean | データソースや検索アプリケーションごとに類義語をグループ化できます。詳細については、データソース固有の同義語を定義するをご覧ください。 | 任意 |
クエリに _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
検索アプリケーション固有の同義語を定義する
デフォルトでは、類義語はすべての検索アプリケーションのすべてのデータソースに適用されます。
ただし、組織にエンジニアリング チームと営業チームがあり、各チームに職務固有の同義語を含め、異なる検索エクスペリエンスを提供するとします。この場合、エンジニアリング固有のデータソースと類義語を持つ検索アプリケーションを 1 つ作成し、販売固有のデータソースと類義語を持つ検索アプリケーションを 1 つ作成できます。この目標を達成するには、_onlyApplicableForAttachedSearchApplications=true
を使用して、特定のデータソース内の各類義語にインデックスを付けます。この設定により、特定のデータソースを含む検索アプリケーションにのみ適用されるように類義語が制限されます。
たとえば、前述のコードサンプルに次のコード行を追加すると、インデックス付きの類義語がデータソース固有になります。
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);