Get term suggestions for the last term in the query

This tutorial demonstrates how the API suggests term completion.

Procedure

A user searching for Burger King fast food restaurants in Berlin Mitte on the way from Potsdam would begin to enter the query and get query term completion suggestions in queryTerms, together with 5 location and follow-up query suggestions in items.

For the incomplete query "bur", the query term completion suggestions are for instance "BURGER", "Burgermeister" and "Burg", along with other relevant location suggestions.

See the example below, as well as complete Autosuggest query session example with query terms completion.

GET https://autosuggest.search.hereapi.com/v1/
    discover
    ?at=52.43414,13.19315
    &q=bur&lang=en
    &limit=5
    &termsLimit=3
    &apiKey={YOUR_API_KEY}
{
  "queryTerms": [
    { "term": "BURGER", "replaces": "bur", "start": 0, "end": 3 },
    { "term": "Burgermeister", "replaces": "bur", "start": 0, "end": 3 },
    { "term": "Burgunder", "replaces": "bur", "start": 0, "end": 3 }
  ],
  "items": [
    {
      "title": "BURGER KING",
      "id": "here:pds:place:276u336k-616d8703c79e45c28af2e3c4d322a724",
      "resultType": "place",
      ...
    },
    {
      "title": "Burgermeister",
      "id": "here:pds:place:276u33d9-ae15f7d5f65b470db3c93e9415f895e5",
      "resultType": "place",
      ...
    },
    {
      "title": "Burgunder Straße, 14129 Berlin, Germany",
      "id": "here:af:street:NxklGXv1cSEovzhnxdHxGB",
      "resultType": "street",
      ...
    },
    {
      "title": "Burg, Sachsen-Anhalt, Germany",
      "id": "here:cm:namedplace:20196144",
      "resultType": "locality",
      ...
    },
    {
      "title": "BURGER KING",
      "id": "here:pds:place:276u3364-46972bb96b804b36a83f074d5213cd2e",
      "resultType": "place",
      ...
    }
  ]
}

The following parameters are used:

  • at - Specify the center of the search context expressed as coordinates.
  • q - Enter a free-text query.
  • limit - Maximum number of results to be returned.
  • termsLimit - Maximum number of Query Terms Suggestions to be returned.
  • apiKey - Your API key.

Note

This request uses API key authentication. For more information about authentication options on the HERE platform, see the Identity & Access Management Guide.

The end-user would pick-up the "BURGER" suggested term, for the application to replace "bur" with "BURGER" in the q parameter and proceed with the incomplete query. The end-user would then type "k" leading to a "BURGER k" query, to which /autosuggest would return the term suggestion "KING", for the end-user to use.

The example of a complete query typing/completion session appears as follows (BK stands for BURGER KING):

user action               q queryTerms[].term items[]
user types "bu" bu "Buckow", "Budapest", "Bülowstrasse" Some cities beginning with "bu"
user types "r" bur "BURGER", "Burgermeister", "Burg" A nearby BK and some further locations
user chooses "BURGER" BURGER "Burgermeister", "Bürgeramt", "Burgersaal" (idem)
user types " " BURGER "Burgermeister", "Bürgeramt", "Burgersaal" (idem)
user types "k" BURGER k "KING" A nearby BK place
user chooses "KING" BURGER KING "Burgermeister", "Bürgeramt", "Burgersaal" 2 BK places and a chainQuery for nearby BK places
user types " " BURGER KING no suggestion (idem)
user types "m" BURGER KING m "Marienfelde", "Mitte", "Moos" 1 nearby BK place, 2 in Marienfelde, 1 in Mitte, 1 in der Rudolf-Moos-Straße
user chooses "Mitte" BURGER KING Mitte "Mittenwalde" 2 BK places in Mitte, a chainQuery for a follow-up BK near Mitte, a chainQuery for a follow-up BK near Mittenwald, 1 nearby BK place
user chooses the
"BURGER KING near Mitte"
follow-up query

When the end-user chooses the chainQuery suggestion "BURGER KING near Mitte" from the items array, the application fires the related href response element against the Discover service, for the end-user to only get BURGER KING restaurants in Mitte.

The Discover service response to the chainQuery suggestion is:

{
  "items": [
    {
      "title": "BURGER KING",
      "address": {
        "label": "BURGER KING, Alexanderplatz 8, 10178 Berlin, Germany",
        "district": "Mitte",
        ...
      },
      ...
    },
    {
      "title": "BURGER KING",
      "address": {
        "label": "BURGER KING, Friedrichstraße 141, 10117 Berlin, Germany",
        "district": "Mitte",
        ...
      },
      ...
    },
    {
      "title": "BURGER KING Storkower STR. Ecke Landsberger Allee",
      "address": {
        "label": "BURGER KING Storkower STR. Ecke Landsberger Allee, Landsberger Allee 119, 10407 Berlin, Germany",
        "district": "Fennpfuhl",
        ...
      },
      ...
    },
    {
      "title": "BURGER KING",
      "id": "here:pds:place:2768lxx5-3d9439ccf0df01dd9657a0a56254c9cb",
      "resultType": "place",
      "address": {
        "label": "BURGER KING, Schönhauser Allee 79, 10439 Berlin, Germany",
        "district": "Prenzlauer Berg",
        ...
      },
      ...
    },
    {
      "title": "BURGER KING",
      "id": "here:pds:place:276u33db-ad4ba38ca1674569acba3c98b953c532",
      "resultType": "place",
      "address": {
        "label": "BURGER KING, Jean-Monnet-Straße 2, 10557 Berlin, Germany",
        "district": "Moabit",
        ...
      },
      ...
    },
    ...
  ]
}

In this example, by using the query term completion, the end-user has interacted 11 times with HERE Geocoding and Search instead of 18 times for a "Burger King Mitte" query if the application is not integrating the queryTerms elements. The gain can be higher for longer query terms.

Additional information

For more information about /autosuggest parameters, see: API Reference.

results matching ""

    No results matching ""