Autosuggest

/autosuggest エンドポイントでは、自由形式の不完全な住所やスペルミスのある住所、または場所の名前を使用することで、ユーザーの検索操作が改善されます。 この提案エンジンは 、 HERE Wego および HERE ナビゲーション アプリケーションのバックエンドで使用されます。

HERE Wego のAutosuggest
図 1. HERE Wego のAutosuggest

提案

一般に、 HERE Geocoding and Search はユーザーのクエリに関連する応答を提供することを目的としています。 クエリーは、次のタイプで構成されています。

  • 「レストラン」や「スターバックス」など、特定のカテゴリまたはチェーンの不明な場所。
  • 「エッフェル塔」や「ベルリン」など、特定の名前の既知の場所
  • 「レストラン、シカゴ」など、知られている場所に不明な場所があります

自動候補提示では、 "toph" 、 "starbu" 、 "eiffel" 、 "berl" などの部分的なクエリに関連する提案を提供しています。 または「 Restaurants Chica 」。 これらの推奨事項は、次のタイプで構成されています。

  • 検索 結果のアイテム :

    部分的なクエリーに関連するフォローアップクエリーが見つかった場合。 フォローアップクエリには、次のいずれかの種類があります。

  • entity の結果アイテム

    部分的なクエリーに関連する場所または住所オブジェクトが見つかった場合。 結果 タイプ は、次のいずれかで構成されます。placeadministrativeArealocalityaddressBlockstreethouseNumber

前の画像の「レストラン」の提案は、自動候補提示のクエリ結果項目からのものです。

フォローアップリクエスト

/autosuggest エンドポイントは、テキストベースの入力エンジンとのエンドユーザーの対話をサポートしています。 /autosuggest エンドポイントへの要求は、キーストロークごとに最初から送信されます。

返される各アイテムには、フォローアップクエリを作成するために必要な情報が含まれています。

  • クエリー項目に href は、までのフォローアップクエリーを含む要素が含まれています /discover
  • エンティティアイテムに は、Endpoint/lookupで使用できる場所idが含まれています

自動候補提示がクエリーアイテムのみを返す場合 /discover 、アプリケーションはエンドユーザーがそのアイテムを選択するのを待たずに、フォローアップクエリーを続行できます。 これは、アプリケーションの応答性を向上させるために推奨されます。 また 、エンティティアイテムのidフィールドとは異なり、クエリーアイテムで返されたidフィールドは/lookupエンドポイントでは使用できません。

クエリフロー
図 2. クエリフロー

/discoverフォローアップ

たとえば 、 HERE Wego ユーザーが画像の「レストラン」の提案などのクエリ結果アイテムをタップすると、 HERE Wego の上に関連するレストランの検索結果が表示されます。

Href の結果
図 3. href の結果

HERE Wego href は、レストランの提案フィールドを使用して、検索バックエンドにフォローアップクエリーを送信します。

警告

API キー 認証を使用する場合、クライアントは、自動候補提示 によって返されたクエリ結果アイテムに apiKey パラメータを追加する必要があります。 認証方式の詳細については、資格情報の取得を参照してください。

/lookupフォローアップ

レストラン「 Tomate Fresh Kitchen 」などの提案をタップすると、関連情報が表示されます。 HERE Wego が /lookup 、関連するエンティティの結果を呼び出し idます。 次の画像を参照してください。

Href の結果
図 4. href の結果

場所のコンテキスト

または atinroute パラメータを使用して、/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 は、次のような複数のタイプのアイテムを返すことができます。

    categoryQuerychainQueryplacelocality など

  • title –アイテムの代表的な文字列

    たとえば、場所の名前、または提案のフォローアップクエリのタイトルなどです

  • id - アイテムの識別子

    アイテムのタイプがcategoryQuerychainQueryでない場合 、id値を使用して、/lookupエンドポイントを介して同じオブジェクトを取得できます。

検索結果のアイテムを検索します

クエリの候補に固有の要素 :

  • href - フォローアップクエリー URI

    このクエリは、エンド ユーザーが関連するアイテムを選択した場合に、アプリケーションによって使用されます。 フォローアップクエリは、カテゴリクエリまたはチェーンクエリのいずれかです。

  • highlights - クエリに一致するテキストスライス

    これらのスライスを使用して、関連する照合フィールドを強調表示できます。

エンティティの結果アイテム

提案固有の要素を配置してアドレスを指定します。

  • position - 結果の代表的な地理位置 (WGS 84) 。結果をマップに表示するために使用します
  • access - 結果へのアクセスの地理的位置 ( 例 : 入口 )
  • distance - クエリ パラメーター で指定された位置からの直線距離 ( メートル単位 ) at
  • address.label - エンティティ結果アイテムの完全なアドレス

Placesの提案については、次のトピックも参照

  • categories - カテゴリ ID のリスト。 プライマリカテゴリのフラグ primarytrueに設定 されています。
  • foodTypes - カテゴリのフラグ primarytrueに設定されている食品タイプ ID のリスト ( 利用可能な場合 ) 。
  • chains -  Chain Metadata を配置して、顧客がチェーンアイコンを選択できるようにします
  • references - データソース ID 。 Place の結果が特定のサプライヤから提供された場合 :

    • yelptripadvisorYelp および Tripadvisor の場合
    • core 主要な HERE Map Data コンテンツ (RDF 、 GDF 、 NAVSTREETS 、ファイルジオデータベース、 POI XML) を備えた 製品の場合

詳細については、「 HERE Places のカテゴリと料理」を参照してください。

クエリ期間の完了サポート

エンドユーザーが自由形式のテキストクエリを作成できるように、 /autosuggest エンドユーザーが入力した単語を置き換えるために選択できる完全な用語のリストを提供します。 termsLimit クエリ パラメーターが 0 より大きい値に設定されている場合、最後に入力した単語の予測テキストのリストがqueryTerms応答要素に表示されます ( 最大値は 10) 。

items 完全なフォローアップクエリーに使用できる結果項目が含まれていますが queryTerms 、はエンドユーザーが作成しているクエリーに注目します。 どちらのアレイも分離されているため、より柔軟なアプリケーションユーザー体験を提供できます。

クエリー条件の完了では、完全な例を使用できます。

希望する言語

アイテムを希望の言語で戻す必要があるアプリケーション では、langパラメータを関連する BCP 47 の言語コードに設定する必要があります。 自動候補提示サービスは、その言語で提案を返しようとします。 lang が設定 されていない場合、または提案項目に要求された言語の翻訳が含まれていない場合は、既定の言語が使用されます。

警告

文書化されていない応答属性は 試験的なものと見なされ、 いつでも削除または変更される可能性があります。 フィードバック をお待ちしています。

」に一致する結果は 件です

    」に一致する結果はありません