Рубрики
Uncategorized

Автозаполнение и предложения с поиском API

Автозаполнение и предложение с поиском API мы ранее обсудили Tomtom Sear … Теги от сопоставления, автозаполнения, DEVOPS, API.

Автозаполнение и предложение с API поиска

Мы ранее обсудили API поиска TomTom немного с нашей предыдущей статьей Понимание нечеткого поиска Отказ

Сегодня мы собираемся немного глубже и обсудить наши Поиск автозаполнения API , функция, которая позволяет вам предоставлять более значимые результаты для ваших пользователей без необходимости отслеживать их. *

Автозаполнение конечная точка дополняет параметр «Тип впереди» в нечетком поисках, предоставляя связанные категории, которые пользователь может искать. Давайте рассмотрим объяснение этого параметра из документации:

И когда поиск входит в прогнозный режим, он также обеспечивает более подходящие результаты.

Первый, Технические аспекты API

Документация для этой конечной точки можно найти в портале разработчика: https://developer.tomtom.com/search-api/search-ap-documentation/autocomplete

Этот вызов API отдыха использует HTTPS-Get и имеет минимальные параметры:

Допустим, мы начнем искать винные магазины. Итак, я начинаю печатать «вино», а на 4-м персонаже мы решаем предоставить некоторые предложения. Так как я в Мадриде, образец звонка будет выглядеть так:

https://api.tomtom.com/search/2/autocomplete/wine.json?key=&language=en-GB&lat=40.41687&lon=3.70356 

Добавление моей личной клавиши API с вызовом, я получаю эти результаты:

{
  "context": {
    "inputQuery": "wine",
    "geoBias": {
      "position": {
        "lat": 40.41687,
        "lon": 3.70356
      }
    }
  },
  "results": [
    {
      "segments": [
        {
          "type": "category",
          "value": "Wine & Spirits",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          },
          "id": "9361025",
          "matchedAlternativeName": "Wine"
        }
      ]
    },
{
      "segments": [
        {
          "type": "category",
          "value": "Wine Bar",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          },
          "id": "9379007",
          "matchedAlternativeName": "Wine"
        }
      ]
    },
    {
      "segments": [
        {
          "type": "category",
          "value": "Winery",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          },
          "id": "7349",
          "matchedAlternativeName": "Wine"
        }
      ]
    }
  ]
}

Давайте рассмотрим результаты:

  1. Я вижу 3 раздела.
  2. Все они имеют тип «категории».

Согласно документации, мы можем получить 3 различных типа результатов: бренды, категории и открытый текст.

Например, если мы ищем термин «Джим» — предполагая, что это относится к нескольким брендам, мы можем наблюдать:

https://api.tomtom.com/search/2/autocomplete/jim.json?key=&language=en-GB&limit=10 
{
  "context": {
    "inputQuery": "jim"
  },
  "results": [
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jim Thompson",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 3
              }
            ]
          }
        }
      ]
    },
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy's Pizza",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 3
              }
            ]
          }
        }
      ]
    },
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy John's",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 3
              }
            ]
          }
        }
      ]
    },
{
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy Chung's",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 3
              }
            ]
          }
        }
      ]
    },
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy Choo",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 3
              }
            ]
          }
        }
      ]
    }
  ]
}

Здесь есть несколько брендов, основанных на нашем входе; Если мы продолжим печатать, и мы сделаем следующий запрос с «JIMM», мы видим:

{
  "context": {
    "inputQuery": "jimm"
  },
  "results": [
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy's Pizza",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          }
        }
      ]
    },
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy John's",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          }
        }
      ]
    },
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy Chung's",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          }
        }
      ]
    },
{
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy Choo",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          }
        }
      ]
    },
    {
      "segments": [
        {
          "type": "brand",
          "value": "Jimmy's Killer Prawns",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          }
        }
      ]
    }
  ]
}

Теперь бренд «Джим Томпсон» ушел из списка после того, как присутствовал на большем количестве буквы «M», и у нас есть новая торговая фирменное наименование «Jimmy’s Killer Rices».

Возвращаясь к нашему первоначальному запросу (вино), как указано в документации, я получаю только 5 результатов по умолчанию. Я думаю, что мне нужно больше, чем для моих пользователей, так что, возможно, попробую 10 в следующий раз.

Возвращаясь к моей первой попытке, я уже добавил некоторые необязательные параметры (LAT и длинные центральное место в Мадриде: La Puerta del Sol). Далее мы пройдем некоторые необязательные параметры.

Дополнительные параметры

Давайте посмотрим на необязательные параметры:

Итак, давайте посмотрим, что мы получаем, если мы обменяем область расположения для страны) и добавьте предел 10 результатов.

Мой новый URL выглядит как:

https://api.tomtom.com/search/2/autocomplete/wine.json?key=&language=en-GB&countrySet=ES&limit=10

И на этот раз я получаю следующий результат:

{
  "context": {
    "inputQuery": "wine"
  },
  "results": [
    {
      "segments": [
        {
          "type": "category",
          "value": "Wine Bar",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          },
          "id": "9379007",
          "matchedAlternativeName": "Wine"
        }
      ]
    },
    {
      "segments": [
        {
          "type": "category",
          "value": "Wine & Spirits",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          },
          "id": "9361025",
          "matchedAlternativeName": "Wine"
        }
      ]
    },
{
      "segments": [
        {
          "type": "category",
          "value": "Winery",
          "matches": {
            "inputQuery": [
              {
                "offset": 0,
                "length": 4
              }
            ]
          },
          "id": "7349",
          "matchedAlternativeName": "Wine"
        }
      ]
    }
  ]
}

И … Это точно так же, как раньше! По крайней мере, я вижу последовательность. (Эти категории в базе данных для Испании.) С этими 3 категориями я могу представить их пользователю, и если какие-либо из них выбраны, мы можем предпринять «ID», предусмотренный в сегменте и выполняют обычную категорию POI Catuion. В этом случае я вижу, что категория « Wine & Spirits » — самая близкая к тому, что я хочу.

Я сделаю быструю категорию поиска и посмотреть, что я получаю.

Мы будем использовать поисковую документацию POI здесь: https://developer.tomtom.com/search-api/search-api-documentation-search/category-search

На этот раз мы собираемся использовать [LAT, LON] для «Пуэрта-дель-Соль» в качестве ориентировочного руководства.

https:// https://api.tomtom.com/search/2/categorySearch/.json?key=&lat=40.41687&lon=-3.70356&categorySet=9361025 

Прежде чем мы проверим результаты, давайте внимательно изучим этот URL:

  1. Я не прошел ни один текст в запросе: я хочу все возможные POI в этой категории и рядом с этим местоположением.
  2. Категория добавляется в дополнительный параметр «Cational Cett»

Теперь этот вызов API отдыха дал несколько интересных результатов, и поскольку он возвращает минимум 10, достаточно хорош для представления пользователю.

Давайте посмотрим первый товар в результатах:

{
  "type": "POI",
  "id": "ES/POI/p0/1486801",
  "score": 1.21439,
  "dist": 295.90900560698543,
  "info": "search:ta:724009006287107-ES",
  "poi": {
    "name": "David Borda Juan Oscar",
    "categorySet": [
      {
        "id": 9361025
      }
    ],
    "categories": [
      "food drinks: wine spirits",
      "shop"
    ],
    "classifications": [
      {
        "code": "SHOP",
        "names": [
          {
            "nameLocale": "en-US",
            "name": "food drinks: wine spirits"
          },
          {
            "nameLocale": "en-US",
            "name": "shop"
          }
        ]
      }
    ]
  },
  "address": {
    "streetNumber": "9",
    "streetName": "Calle del Príncipe",
    "municipalitySubdivision": "Madrid",
    "municipality": "Madrid",
    "countrySecondarySubdivision": "Madrid",
    "countrySubdivision": "Comunidad de Madrid",
    "postalCode": "28012",
    "countryCode": "ES",
    "country": "España",
    "countryCodeISO3": "ESP",
    "freeformAddress": "Calle del Príncipe 9, 28012 Madrid",
    "localName": "Madrid"
  },
  "position": {
    "lat": 40.41593,
    "lon": -3.70029
  },
  "viewport": {
    "topLeftPoint": {
      "lat": 40.41683,
      "lon": -3.70147
    },
    "btmRightPoint": {
      "lat": 40.41503,
      "lon": -3.69911
    }
  },
  "entryPoints": [
    {
      "type": "main",
      "position": {
        "lat": 40.41593,
        "lon": -3.70035
      }
    }
  ]
}

Как видно, существует множество информации, связанной с этим POI (точкой интереса), но укажите свое внимание на поле «Категории». Это массив назначенных категорий, к которым это место относится к. Если я смогу представить это пользователю, он или она может уточнить автозаполнение, чтобы быть улучшенным в будущем.

Конечные ноты

Функция автозаполнения в TomTom Search Это чрезвычайно ценное дополнение к остальным нашим API. В этом небольшом примере мы видели, насколько легко можно обеспечить непрерывный результаты поиска в ваше приложение, чтобы пользователь мог сузить их фокус и получить более конкретные результаты.

Проверьте много возможностей в нашем портале разработчика: Developer.tomtom.com и не забудьте добавить вопросы и комментарии на нашем форуме: devforum.tomtom.com.

Счастливое отображение … И ищет!

*Примечание : Защита конфиденциальности имеет первостепенное значение для TomTom, и все API доступны в портале разработчика (Developer.tomtom.com), сохраняют эту политику, чтобы ваши пользователи могли быть уверены, что все собранные данные только для того, чтобы сделать наши API лучше (и с вашим согласием) и только вне необходимости выполнять действия, которые вам требуют в вашем приложении.

Эта статья изначально появилась на https://developer.tomtom.com/blog Отказ Оригинальный автор Magdalena Korczynska Отказ

Оригинал: «https://dev.to/tomtomdevs/autocomplete-and-suggestions-with-the-search-api-232k»