Azure Cognitive Search での OData $select 構文
Azure Cognitive Search の $select パラメーターは、検索結果に含めるフィールドを指定します。 この記事では、$select の OData 構文について説明し、例を示します。
フィールド パスの構造と定数については、Azure Cognitive Search での OData 言語の概要に関する記事をご覧ください。 検索結果の構成について詳しくは、「Azure Cognitive Search での検索結果の操作方法」をご覧ください。
構文
$select パラメーターによって、各ドキュメントのどのフィールドがクエリ結果セットに返されるかが決まります。 次の EBNF (拡張バッカスナウア記法) に $select パラメーターの文法が定義されています。
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
対話型の構文ダイアグラムも利用できます。
注意
完全な EBNF については、Azure Cognitive Search の OData 式構文リファレンスに関するページをご覧ください。
$select パラメーターには 2 つの形式があります。
- 1 つのアスタリスク (
*
)。取得できるすべてのフィールドを返すことを指定します。 - 複数のフィールド パスをコンマで区切った一覧。返すフィールドを指定します。
2 つ目の形式を使用するときは、一覧の取得できるフィールドのみを指定できます。
サブフィールドを明示的に指定せずに複合フィールドを列挙すると、取得できるすべてのサブフィールドがクエリ結果セットに含まれます。 たとえば、インデックスに、Street
、City
、Country
というサブフィールドがある Address
フィールドがあり、いずれも取得できるとします。 $select に Address
を指定した場合、クエリ結果には 3 つのサブフィールドすべてが含まれます。
例
結果に HotelId
、HotelName
、Rating
の最上位フィールドを含め、Address
の City
サブフィールドを含めます。
$select=HotelId, HotelName, Rating, Address/City
結果の例は次のようになります。
{
"HotelId": "1",
"HotelName": "Secret Point Motel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
結果に HotelName
最上位フィールドを含めます。 Address
のサブフィールドをすべて含めます。 Rooms
コレクション内の各オブジェクトの Type
および BaseRate
サブフィールドを含めます。
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
結果の例は次のようになります。
{
"HotelName": "Secret Point Motel",
"Rating": 4,
"Address": {
"StreetAddress": "677 5th Ave",
"City": "New York",
"StateProvince": "NY",
"Country": "USA",
"PostalCode": "10022"
},
"Rooms": [
{
"Type": "Budget Room",
"BaseRate": 9.69
},
{
"Type": "Budget Room",
"BaseRate": 8.09
}
]
}