FacetSpec

ファセット検索を実行するファセットの仕様。

JSON 表現
{
  "facetKey": {
    object (FacetKey)
  },
  "limit": integer,
  "excludedFilterKeys": [
    string
  ],
  "enableDynamicPosition": boolean
}
フィールド
facetKey

object (FacetKey)

必須。ファセット キーの仕様。

limit

integer

このファセットに対して返されるファセット値の最大数。指定しない場合、デフォルトは 20 です。最大値は 300 です。300 を超える値は 300 に強制変換されます。医療検索の集計では、[FacetKey.key] が「healthcare_aggregation_key」の場合、ここで設定された値に関係なく、上限は内部的に 10,000 にオーバーライドされます。

このフィールドが負の数の場合、INVALID_ARGUMENT が返されます。

excludedFilterKeys[]

string

ファセット処理時に除外するキーのリスト。

デフォルトでは、このフィールドにリストされていない限り、FacetKey.key はフィルタから除外されません。

このフィールドにファセットキーを登録すると、検索結果から除外された場合でも、その値がファセット結果として表示されます。このフィールドを使用しても、返される検索結果には影響しません。

たとえば、色のファセット「赤」を含むドキュメントが 100 個、色のファセット「青」を含むドキュメントが 200 個あるとします。フィルタ「color:ANY("Red")」を含み、FacetKey.key として「color」を持つクエリは、デフォルトで検索結果に「Red」ドキュメントのみを返し、カウント 100 の「Red」を唯一のカラー ファセットとして返します。青いドキュメントも利用可能ですが、「青」は利用可能なファセット値として表示されません。

「color」が「excludedFilterKeys」にリストされている場合、クエリはファセット値「Red」(カウント 100)と「Blue」(カウント 200)を返します。これは、「color」キーがフィルタから除外されたためです。このフィールドは検索結果に影響しないため、検索結果は引き続き正しくフィルタリングされ、「赤」のドキュメントのみが返されます。

最大 100 個の値を指定できます。それ以外の場合は、INVALID_ARGUMENT エラーが返されます。

enableDynamicPosition

boolean

このファセットの動的位置を有効にします。true に設定すると、レスポンス内のすべてのファセットにおけるこのファセットの位置が自動的に決定されます。動的ファセットが有効になっている場合は、一緒に並べ替えられます。false に設定すると、レスポンスでのこのファセットの位置はリクエストでの位置と同じになり、動的ポジションが有効になっているファセットとすべての動的ファセットの前にランク付けされます。

たとえば、レスポンスで常に評価ファセットを返すようにしたいが、評価ファセットを常に上部に表示する必要はない場合があります。その場合は、enableDynamicPosition を true に設定して、レスポンス内の評価ファセットの位置を自動的に決定できます。

別の例として、リクエストに次のファセットがあるとします。

  • "rating", enableDynamicPosition = true

  • "price"、enableDynamicPosition = false

  • 「brands」、enableDynamicPosition = false

また、動的ファセットが有効になっているため、ファセット gender が生成されます。レスポンス内のファセットの最終的な順序は、API が「性別」と「評価」のファセットをどのように順序付けるかによって、(「価格」、「ブランド」、「評価」、「性別」)または(「価格」、「ブランド」、「性別」、「評価」)になります。ただし、「price」と「brands」は enableDynamicPosition が false であるため、常に 1 位と 2 位にランク付けされます。

FacetKey

ファセットの計算方法を指定します。

JSON 表現
{
  "key": string,
  "intervals": [
    {
      object (Interval)
    }
  ],
  "restrictedValues": [
    string
  ],
  "prefixes": [
    string
  ],
  "contains": [
    string
  ],
  "caseInsensitive": boolean,
  "orderBy": string
}
フィールド
key

string

必須。Document オブジェクトでサポートされているテキストと数値のファセットキー。ファセット値が計算されます。ファセットキーでは大文字と小文字が区別されます。

intervals[]

object (Interval)

値を区間に分類する場合にのみ設定します。数値を含むファセットに設定する必要があります。テキスト値を含むファセットには設定できません。インターバルの最大数は 30 です。

restrictedValues[]

string

指定された制限付きの値のファセットのみを取得します。テキスト フィールドでのみサポートされます。たとえば、「category」に「Action > 2022」、「Action > 2021」、「Sci-Fi > 2022」の 3 つの値があるとします。「restrictedValues」を「Action > 2022」に設定すると、「category」ファセットには「Action > 2022」のみが含まれます。テキスト フィールドでのみサポートされます。最大値は 10 です。

prefixes[]

string

指定された文字列プレフィックスで始まるファセット値のみを取得します。たとえば、「category」に「Action > 2022」、「Action > 2021」、「Sci-Fi > 2022」の 3 つの値があるとします。「prefixes」を「Action」に設定すると、「category」ファセットには「Action > 2022」と「Action > 2021」のみが含まれます。テキスト フィールドでのみサポートされます。最大値は 10 です。

contains[]

string

指定された文字列を含むファセット値のみを取得します。たとえば、「category」に「Action > 2022」、「Action > 2021」、「Sci-Fi > 2022」の 3 つの値があるとします。「contains」を「2022」に設定すると、「category」ファセットには「Action > 2022」と「Sci-Fi > 2022」のみが含まれます。テキスト フィールドでのみサポートされます。最大値は 10 です。

caseInsensitive

boolean

接頭辞または contains を使用してファセット値を取得するときに、ファセットキーを大文字と小文字を区別しないようにする場合は true。それ以外の場合は false。

orderBy

string

ドキュメントが返される順序。

指定できる値は次のとおりです。

設定されていない場合、テキスト値は自然順序で並べ替えられ、数値間隔は FacetSpec.FacetKey.intervals で指定された順序で並べ替えられます。