Autosuggest /autosuggest
エンドポイントでは、自由形式の不完全な住所やスペルミスのある住所、または場所の名前を使用することで、ユーザーの検索操作が改善されます。 この提案エンジンは 、 HERE Wego および HERE ナビゲーション アプリケーションのバックエンドで使用されます。
図 1. HERE Wego のAutosuggest 提案 一般に、 HERE Geocoding and Search はユーザーのクエリに関連する応答を提供することを目的としています。 クエリーは、次のタイプで構成されています。
「レストラン」や「スターバックス」など、特定のカテゴリまたはチェーンの不明な場所。 「エッフェル塔」や「ベルリン」など、特定の名前の既知の場所 「レストラン、シカゴ」など、知られている場所に不明な場所があります 自動候補提示では、 "toph" 、 "starbu" 、 "eiffel" 、 "berl" などの部分的なクエリに関連する提案を提供しています。 または「 Restaurants Chica 」。 これらの推奨事項は、次のタイプで構成されています。
前の画像の「レストラン」の提案は、自動候補提示のクエリ結果項目からのものです。
フォローアップリクエスト /autosuggest
エンドポイントは、テキストベースの入力エンジンとのエンドユーザーの対話をサポートしています。 /autosuggest
エンドポイントへの要求は、キーストロークごとに最初から送信されます。
返される各アイテムには、フォローアップクエリを作成するために必要な情報が含まれています。
クエリー項目に href
は、までのフォローアップクエリーを含む要素が含まれています /discover
エンティティアイテムに は、Endpoint/lookup
で使用できる場所id
が含まれています 自動候補提示がクエリーアイテムのみを返す場合 /discover
、アプリケーションはエンドユーザーがそのアイテムを選択するのを待たずに、フォローアップクエリーを続行できます。 これは、アプリケーションの応答性を向上させるために推奨されます。 また 、エンティティアイテムのid
フィールドとは異なり、クエリーアイテムで返されたid
フィールドは/lookup
エンドポイントでは使用できません。
図 2. クエリフロー /discover
フォローアップ たとえば 、 HERE Wego ユーザーが画像の「レストラン」の提案などのクエリ結果アイテムをタップすると、 HERE Wego の上に関連するレストランの検索結果が表示されます。
図 3. href の結果 HERE Wego href
は、レストランの提案フィールドを使用して、検索バックエンドにフォローアップクエリーを送信します。
警告 API キー 認証を使用する場合、クライアントは、自動候補提示 によって返されたクエリ 結果アイテムに apiKey パラメータを追加する必要があります。 認証方式の詳細については、資格情報の取得 を参照してください。
/lookup
フォローアップ レストラン「 Tomate Fresh Kitchen 」などの提案をタップすると、関連情報が表示されます。 HERE Wego が /lookup
、関連するエンティティの結果を呼び出し id
ます。 次の画像を参照してください。
図 4. href の結果 場所のコンテキスト または at
in
route
パラメータを使用して、/discover
と同じタイプのロケーションコンテキスト を要求する/autosuggest
クエリー。
クエリー文字列 q
このパラメータは、キーストロークを追加するごとに 1 つの自動候補提示クエリを使用して、開発中の語句を送信するために使用されます。
たとえば、エンドユーザーがアプリケーションを使用している場合、文字 r 、 e 、 s 、 t 、 a を入力することがあります。 u 、 r 、 a 、 n 、 t アプリケーションは q
、パラメータが「 r 」、次に「 re 」、「 res 」、「 REST 」に設定されたリクエストを送信します 顧客は、最初のキーストロークから自動候補提示クエリを送信して、早期の提案を提供することを決定できます。 3 番目のキーストロークから始まるクエリを送信することもできます。 この場合、サンプルのクエリ q
では、 "res" 、 "res" 、 REST などに設定されます
の場合 discover
、入力文字列は、さまざまな混合スクリプト ( ラテン、キリル、アラビア、ギリシャ料理など ) で形成できます。
特殊なケース :
q
値は空ではありません。 空白文字、タブ、または改行のみを含む値q
は、有効なクエリであり、空の結果リストを返します。 たとえば、ドイツの Neuruppin の近くにある「 res 」の提案を検索する場合、次のようになります。
GET https://autosuggest.search.hereapi.com/v1/
autosuggest
?at=52.93175,12.77165
&limit=5
&lang=en
&q=res
&apiKey={YOUR_API_KEY}
結果アイテムのフィールド 提案エンジンは、クエリまたはエンティティーアイテムのいずれかの関連する提案のセットを返します。 /autosuggest
パラメータの詳細については 、『 API リファレンス 』を参照してください。
上記の例で HERE Wego アプリケーションによって送信されたものと同様のリクエストに対する応答は、次のとおりです。
{
"items" : [
{
"title" : "restaurant" ,
"id" : "here:cm:ontology:restaurant" ,
"resultType" : "categoryQuery" ,
"href" : "https://autosuggest.search.hereapi.com/v1/discover?q=restaurant&_ontology=restaurant&lang=en&at=52.93175%2C12.77165" ,
"highlights" : { "title" : [ { "start" : 0 , "end" : 3 } ] }
} ,
{
"title" : "Resort Mark Brandenburg" ,
"id" : "here:pds:place:276u33j5-6ad49082b9ed4e7bbb88c011d7e8babe" ,
"resultType" : "place" ,
"address" : { "label" : "Resort Mark Brandenburg, An der Seepromenade 20, 16816 Neuruppin, Germany" } ,
"position" : { "lat" : 52.924 , "lng" : 12.81321 } ,
"access" : [ { "lat" : 52.9241 , "lng" : 12.81307 } ] ,
"distance" : 2916 ,
"categories" : [
{ "id" : "500-5000-0000" , "name" : "Hotel/Motel" , "primary" : true } ,
{ "id" : "500-5000-0053" , "name" : "Hotel" } ,
{ "id" : "500-5100-0000" , "name" : "Lodging" } ,
{ "id" : "500-5100-0059" , "name" : "Holiday Park" }
] ,
"chains" : [ { "id" : "2106" } ] ,
"references" : [ ... ] ,
"highlights" : { "title" : [ { "start" : 0 , "end" : 3 } ] , "address" : { "label" : [ { "start" : 0 , "end" : 3 } ] } }
} ,
{
"title" : "Hotel & Restaurant am Alten Rhin" ,
"id" : "here:pds:place:276u33jh-81e655b8ed9246209bcf978fdbcb7db5" ,
"resultType" : "place" ,
"address" : { "label" : "Hotel & Restaurant am Alten Rhin, Friedrich-Engels-Straße 12, 16827 Neuruppin, Germany" } ,
"position" : { "lat" : 52.95022 , "lng" : 12.84247 } ,
"access" : [ { "lat" : 52.95026 , "lng" : 12.84258 } ] ,
"distance" : 5171 ,
"categories" : [
{ "id" : "500-5000-0053" , "name" : "Hotel" , "primary" : true } ,
...
] ,
"references" : [ ... ] ,
"foodTypes" : [ ... ] ,
"highlights" : { "title" : [ ] , "address" : { "label" : [ ] } }
} ,
{
"title" : "Restaurant Rosengarten" ,
"id" : "here:pds:place:276u33j5-9684ac8171c0408bb0f787b37599548b" ,
"resultType" : "place" ,
"address" : { "label" : "Restaurant Rosengarten, Wichmannstraße 8, 16816 Neuruppin, Germany" } ,
"position" : { "lat" : 52.92393 , "lng" : 12.80519 } ,
"access" : [ { "lat" : 52.924 , "lng" : 12.8053 } ] ,
"distance" : 2411 ,
"categories" : [
{ "id" : "100-1000-0000" , "name" : "Restaurant" , "primary" : true } ,
...
] ,
"references" : [ ... ] ,
"foodTypes" : [ ... ] ,
"highlights" : { "title" : [ { "start" : 0 , "end" : 3 } ] , "address" : { "label" : [ { "start" : 0 , "end" : 3 } ] } }
} ,
{
"title" : "Restaurant Seegarten" ,
"id" : "here:pds:place:276u33j5-49777259a2fe4c76a37f8387ca702a6a" ,
"resultType" : "place" ,
"address" : { "label" : "Restaurant Seegarten, Regattastraße 17, 16816 Neuruppin, Germany" } ,
"position" : { "lat" : 52.91976 , "lng" : 12.80827 } ,
"access" : [ { "lat" : 52.91978 , "lng" : 12.80808 } ] ,
"distance" : 2793 ,
"categories" : [ { "id" : "100-1000-0000" , "name" : "Restaurant" , "primary" : true } ] ,
"references" : [ ... ] ,
"foodTypes" : [ ... ] ,
"highlights" : { "title" : [ { "start" : 0 , "end" : 3 } ] , "address" : { "label" : [ { "start" : 0 , "end" : 3 } ] } }
}
] ,
"queryTerms" : [ ]
}
共通の要素 回答には、最も多いものから最も少ないものへの複数の項目が含まれています。 各アイテムに次の高いレベルの要素が提供されます。
resultType
- アイテムタイプ
HERE Geocoding and Search /autosuggest
は、次のような複数のタイプ のアイテムを返すことができます。
categoryQuery
、 chainQuery
、place
、locality
など
title
–アイテムの代表的な文字列
たとえば、場所の名前、または提案のフォローアップクエリのタイトルなどです
id
- アイテムの識別子
アイテムのタイプがcategoryQuery
chainQuery
でない場合 、id
値を使用して、/lookup
エンドポイントを介して同じオブジェクトを取得できます。
検索結果のアイテムを検索します クエリの候補に固有の要素 :
href
- フォローアップクエリー URI
このクエリは、エンド ユーザーが関連するアイテムを選択した場合に、アプリケーションによって使用されます。 フォローアップクエリは、カテゴリクエリまたはチェーンクエリのいずれかです。
highlights
- クエリに一致するテキストスライス
これらのスライスを使用して、関連する照合フィールドを強調表示できます。
エンティティの結果アイテム 提案固有の要素を配置してアドレスを指定します。
position
- 結果の代表的な地理位置 (WGS 84) 。結果をマップに表示するために使用します access
- 結果へのアクセスの地理的位置 ( 例 : 入口 ) distance
- クエリ パラメーター で指定された位置からの直線距離 ( メートル単位 ) at
address.label
- エンティティ結果アイテムの完全なアドレス Placesの提案については、次のトピックも参照
詳細については、「 HERE Places のカテゴリと料理」 を参照してください。
クエリ期間の完了サポート エンドユーザーが自由形式のテキストクエリを作成できるように、 /autosuggest
エンドユーザーが入力した単語を置き換えるために選択できる完全な用語のリストを提供します。 termsLimit
クエリ パラメーターが 0 より大きい値に設定されている場合、最後に入力した単語の予測テキストのリストがqueryTerms
応答要素に表示されます ( 最大値は 10) 。
items
完全なフォローアップクエリーに使用できる結果項目が含まれていますが queryTerms
、はエンドユーザーが作成しているクエリーに注目します。 どちらのアレイも分離されているため、より柔軟なアプリケーションユーザー体験を提供できます。
クエリー条件の完了では、完全な例を使用 できます。
希望する言語 アイテムを希望の言語で戻す必要があるアプリケーション では、lang
パラメータを関連する BCP 47 の言語コードに設定する必要があります。 自動候補提示サービスは、その言語で提案を返しようとします。 lang
が設定 されていない場合、または提案項目に要求された言語の翻訳が含まれていない場合は、既定の言語 が使用されます。