Azure AI Search の OData $select構文
Azure AI Search では、 $select パラメータによって、検索結果に含めるフィールドが指定されます。 この記事では、$select の OData 構文について説明し、例を示します。
フィールド パスの構築と定数については、Azure AI SearchのOData 言語の概要 を参照してください。 検索結果の構成の詳細については、「 Azure AI Searchで検索結果を操作する方法」を参照してください。
構文
$select パラメーターによって、各ドキュメントのどのフィールドがクエリ結果セットに返されるかが決まります。 次の EBNF (拡張バッカスナウア記法) に $select パラメーターの文法が定義されています。
select_expression ::= '*' | field_path(',' field_path)*
field_path ::= identifier('/'identifier)*
対話型の構文ダイアグラムも利用できます。
Note
完全な EBNF については、Azure AI 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": "Stay-Kay City Hotel",
"Rating": 4,
"Address": {
"City": "New York"
}
}
結果に HotelName
最上位フィールドを含めます。 Address
のサブフィールドをすべて含めます。 Rooms
コレクション内の各オブジェクトの Type
および BaseRate
サブフィールドを含めます。
$select=HotelName, Address, Rooms/Type, Rooms/BaseRate
結果の例は次のようになります。
{
"HotelName": "Stay-Kay City Hotel",
"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
}
]
}