1. フィルタリング・facets

ファセットフィルタリングリファレンス

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

facetsフィルタリングするには、facet.types.filterオブジェクトを使います。ANDかORフィルタリングをするか、このファセットの値を他のfacetsのフィルターに基づき動的に変化させるか、複雑なネスト型フィルターを使うかなどを指定できます。ファセットフィルタリングの多様な ユースケースやサンプルコール を参照してください。

このトピックはsearch.facet.types.filter.valuesオブジェクトに特有のものです。一般的なファセットフィルタリングの参考文献については、Searchおよび推奨事項の詳細APIを参照してください

以下の表は、search.facet.types.filter.valuesオブジェクトが取ることができる鍵を説明します。

キー

種類

概要

価値

values

array of strings

array of filter objects

必須。

この側面のフィルターの詳細。

ファセットIDによる簡単なファセットフィルタリングを行うには、文字列の配列を渡します。

lte(小さい)のようなoperatorsもので複雑な面フィルタリングを行う場合、geoDistance、notはオブジェクトの配列を渡します。

簡単なファセットフィルタリングの場合:

json
"values": "facet_id123", "facet_id456", "facet_id789"

複雑なファセットフィルタリングの場合:

json
{
"type": "and",
"filters":
{
"type": "lte",
"value": "1000"
},
{
"type": "gte",
"value": "200"
},
{
"type": "not",
"filter": {
"type": "eq",
"value": "350"
}
}

}

単純なファセットフィルタリング

ファセットIDによる簡単なファセットフィルタリングを行うには、search.facet.types.filter.valuesキーの値として文字列の配列を渡します。フィルタリングfacetsの**「フィルタリング・ア・ファセット**」セクションにはサンプルコールがあります。

以下の表は、search.facet.types.filter.valuesオブジェクトがarray of strings型の場合に必要な鍵について説明します。

キー

種類

概要

values

array of strings

オプションです。文字列の配列を渡します。

フィルターしたいファセットIDの配列です。

ファセットIDのみを渡してください。ファセット値は渡さないでください。

例えば:

json
"values": "facet_id123", "facet_id456", "facet_id789"

複素面フィルタリング

lte(以下)、geoDistance、notなどoperatorsで複雑なファセットフィルタリングを行う場合、search.facet.types.filter.valuesキーの値としてフィルターオブジェクトの配列を渡します。Filtering facetsの「**複雑なファセットフィルターを使う」**セクションにはサンプルコールがあります。

以下の表は、array of filter objects型の場合にsearch.facet.types.filter.valuesオブジェクトが取る鍵について説明します。

キー

種類

概要

価値観

以下タイプのオブジェクトの配列

facet filterオブジェクトgtファセットフィルターオブジェクトgtファセットフィルターオブジェクトltファセットフィルターオブジェクトltファセットフィルターオブジェクトnotファセットフィルターobjectまたはfacetフィルターオブジェクト

使いたいオブジェクトのファセットフィルタリング。

フィルターオブジェクト

およびファセットフィルターオブジェクト

結果を得るためにはすべて一致しなければならない入れ子化されたファセットフィルターを追加するには、andファセットフィルターオブジェクトを使用します。このファセットフィルターオブジェクトは再帰的です。

以下の表は、andファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

種類

ストリング

必須。およびとして設定。ファセットフィルターオブジェクトの演算子。

フィルター

以下タイプのオブジェクトの配列

facet filterオブジェクトgtファセットフィルターオブジェクトgtファセットフィルターオブジェクトltファセットフィルターオブジェクトltファセットフィルターオブジェクトnotファセットフィルターobjectまたはfacetフィルターオブジェクト

必須。ファセットフィルターオブジェクトまたはファセットIDの配列。すべてのオブジェクトのフィルタリング条件を満たす必要があります。

例えば、lte、gte、をandファセットフィルターオブジェクト内に入れ子にし、notファセットフィルターオブジェクトを配置します。これにより、ある量より大きい、ある量より小さい、そして一定の値に等しくない条件を満たす結果を求めます。

こちらがファセットフィルターオブジェクトandサンプルです:

{ "type": "and", "filters": { "type": "lte", "value": "1000" }, { "type": "gte", "value": "200" }, { "type": "not", "filter": { "type": "eq", "value": "350" } }

}

anyOfファセットフィルターオブジェクト

任意の値に一致する結果を得るには、anyOfファセットフィルターオブジェクトを使います。

以下の表は、anyOfファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

anyOfとして設定。

ファセットフィルターオブジェクトの演算子です。

values

stringまたはnumber値の配列

必須。

フィルターしたい面の値でフィルタリングし、どれでも一致して結果が得られます。

ファセット値だけを渡してください。ファセットIDは渡さないでください。値はフィルターが適用される属性の型でなければなりません。

こちらがファセットフィルターオブジェクトanyOfサンプルです:

{ "type": "anyOf", "values": "History", "Science Fiction", "Classics"

}

allOfファセットフィルターオブジェクト

与えられた値すべてに一致する結果を得るには、allOfファセットフィルターオブジェクトを使います。

以下の表は、allOfファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

allOfとして設定。

ファセットフィルターオブジェクトの演算子です。

values

stringまたはnumber値の配列

必須。

フィルターをかけたい面の値で、すべて一致していなければ結果が出ません。

ファセット値だけを渡してください。ファセットIDは渡さないでください。値はフィルターが適用される属性の型と一致しなければなりません。

EQファセットフィルターオブジェクト

与えられた値に一致する結果を得るには、eqファセットフィルターオブジェクトを使います。

以下の表は、eqファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

eqとして設定。

ファセットフィルターオブジェクトの演算子です。

value

string または number

必須。

結果を得るためには、マッチしなければならない面的な価値です。

ファセットの値だけを渡してください。ファセットIDは渡さないでください。値はフィルターが適用される属性の型でなければなりません。

こちらがファセットフィルターオブジェクトeqサンプルです:

{ "type": "eq", "value": "Science Fiction" }

geoDistanceのファセットフィルターオブジェクト

定義した円形領域内で結果を得るには、geoDistanceファセットフィルターオブジェクトを使いましょう。

以下の表は、geoDistanceファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

種類

ストリング

必須。geoDistanceとして設定。ファセットフィルターオブジェクトのオペレーター。

距離

ストリング

必須。適切なcontent itemsをSearchで見つけたい円形の地理的範囲の半径。数字を入力し、その後距離の単位を付けます。スペースを追加しないでください。例えば、8.6フィートまたは86kmと入力します。対応単位は以下の通りです

(インチ)、フィート(フィート)、ヤード(ヤード)、mi(マイル)、nmi(海里)、km(km)、m(meters)、cm(センチメートル)、mm(ミリメートル)

広度

番号

訪問者の位置の緯度。緯度と経度を合わせて、結果をフィルタリングしたい円の中心を定義します。小数点(DD)形式を使いましょう。スペースは使わないでください。例えば、-77.0089をパスしてください。ここで値を指定していない場合、Searchはgeo context objectで緯度値を探します。geo context objectがなければ、Searchは訪問者のIPアドレスからおおよその緯度を推定します。

ロン

番号

訪問者の位置の経度。緯度と経度を合わせて、結果をフィルタリングしたい円の中心を定義します。小数点(DD)形式を使いましょう。スペースは使わないでください。例えば、パス-120.0017。ここで値を指定していない場合、Searchはgeo context objectで緯度値を探します。geo context objectがなければ、Searchは訪問者のIPアドレスからおおよその緯度を推測します。

こちらがファセットフィルターオブジェクトgeoDistanceサンプルです:

{ "type": "geoDistance", "distance": "50km", "lat": -59.11309610169502, "lon": -37.329354589260596 }

geoWithinファセットフィルターオブジェクト

定義されたポリゴン領域内で結果を得るには、geoWithinファセットフィルターオブジェクトを使います。

以下の表は、geoWithinファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

geoWithinとして設定。

ファセットフィルターオブジェクトの演算子です。

coordinates

coordinatesオブジェクトの配列。

Searchが検索するポリゴン領域を形成する座標。

このオブジェクトの lat キーと lon キーは、ポリゴンの1つの頂点を定義します。例えば、4つの頂点を定義すると、Search 4辺の領域を作成して結果をフィルタリングします。

少なくとも3つのポイントを定義してください。

座標オブジェクト

Searchのために少なくとも3つのcoordinatesオブジェクトを渡してポリゴン領域を作ります。

以下の表は、coordinatesオブジェクトが取るキーを説明します。

キー

種類

概要

lat

number

Searchで検索したいポリゴン領域の頂点の緯度。

小数点(DD)の形式を使ってください。スペースは使わないでください。

例えば、 -77.0089をパスします。

lon

number

Searchで検索したいポリゴン領域の頂点の経度。

小数点(DD)の形式を使ってください。スペースは使わないでください。

例えば、 -120.0017をパスします。

こちらがファセットフィルターオブジェクトgeoWithinサンプルです:

{ "type": "geoWithin", "coordinates": { "lat": 43.194852, "lon": -79.570522 }, { "lat": 43.176515, "lon": -79.929493 }, { "lat": 43.521512, "lon": -79.912504 }, { "lat": 43.871014, "lon": -78.780655 }

}

gtファセットフィルターオブジェクト

与えられた値より大きな結果を得るには、gtファセットフィルターオブジェクトを使います。このファセットフィルターオブジェクトはヒストグラムfacetsでしか使えません。

以下の表は、gtファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

gtとして設定。

ファセットフィルターオブジェクトの演算子です。

value

string または number

必須。

結果を得るための閾値として使う側面価値。

ファセットの値だけを渡してください。ファセットIDは渡さないでください。

こちらがファセットフィルターオブジェクトgtサンプルです:

{ "type": "gt", "value": 999 }

GTEファセットフィルターオブジェクト

ある値以上の結果を得るには、gteファセットフィルターオブジェクトを使用します。このファセットフィルターオブジェクトはヒストグラムfacetsでしか使えません。

以下の表は、gteファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

gteとして設定。

ファセットフィルターオブジェクトの演算子です。

value

string または number

必須。

結果を出しきらいとして使う面値。

ファセットの値だけを渡してください。ファセットIDは渡さないでください。

こちらがファセットフィルターオブジェクトgteサンプルです:

{ "type": "gte", "value": 1000 }

LTファセットフィルターオブジェクト

与えられた値より低い結果を得るには、ltファセットフィルターオブジェクトを使います。このファセットフィルターオブジェクトはヒストグラムfacetsでしか使えません。

以下の表は、ltファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

ltとして設定。

ファセットフィルターオブジェクトの演算子です。

value

string または number

必須。

結果を抑えるための閾値として使う側面。

ファセットの値だけを渡してください。ファセットIDは渡さないでください。

こちらがファセットフィルターオブジェクトltサンプルです:

{ "type": "lt", "value": 1000 }

LTEファセットフィルターオブジェクト

ある値以下の結果を得るには、lteファセットフィルターオブジェクトを使います。このファセットフィルターオブジェクトはヒストグラムfacetsでしか使えません。

以下の表は、lteファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

type

string

必須。

lteとして設定。

ファセットフィルターオブジェクトの演算子です。

value

string または number

必須。

値を閾値として使うため、結果を以下以下にします。

ファセットの値だけを渡してください。ファセットIDは渡さないでください。

こちらがファセットフィルターオブジェクトlteサンプルです:

{ "type": "lte", "value": 999 }

ファセットフィルターオブジェクトではありません

結果を得るためにすべて一致する必要のないネストされたファセットフィルターを追加するには、notファセットフィルターオブジェクトを使用します。このファセットフィルターオブジェクトは再帰的です。

以下の表は、notファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

種類

ストリング

必須。非に設定。ファセットフィルターオブジェクトの演算子。

フィルター

以下のタイプの Object または文字列 facet IDstringallOf facet filter objectand facet filter objectanyOf facet filter objecteq facet filter objectgeoDistance facet filter objectgeoWithin facet filter objectgt facet filter objectgt facet filter objectlt facet filter objectlt facet filter objectnot facet filter objectnot facet filter object, facet filter object

Required.Facet フィルターオブジェクトまたは文字列 facet ID。

こちらがファセットフィルターオブジェクトnotサンプルです:

{ "type": "not", "filter":"facet_id123" }

またはファセットフィルターオブジェクト

結果を得るためには、どれかが一致しなければならない入れ子化されたファセットフィルターを追加するには、orファセットフィルターオブジェクトを使用します。このファセットフィルターオブジェクトは再帰的です。

以下の表は、orファセットフィルターオブジェクトが取るキーを説明します。

キー

種類

概要

種類

ストリング

必須。またはとして設定します。ファセットフィルターオブジェクトの演算子。

フィルター

以下タイプのオブジェクトの配列

facet filterオブジェクトgtファセットフィルターオブジェクトgtファセットフィルターオブジェクトltファセットフィルターオブジェクトltファセットフィルターオブジェクトnotファセットフィルターobjectまたはfacetフィルターオブジェクト

必須。ファセットフィルターオブジェクトまたは文字列ファセットIDの配列。少なくとも1つのオブジェクトまたはファセットIDのフィルタリング条件を満たす必要があります。

例えば、lte、gte、をorファセットフィルターオブジェクト内に入れ子にし、eqファセットフィルターオブジェクトを配置します。この方法では、ある量より大きい、あるいはある量より小さい、またはある量と等しい条件を満たす結果を求めます。

こちらがファセットフィルターオブジェクトorサンプルです:

{ "type": "or", "filters": { "type": "lte", "value": "150" }, { "type": "gte", "value": "350" }, { "type": "eq", "value": "200" }

}

この記事を改善するための提案がある場合は、 お知らせください!