Автозаполнение и предложение с 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" } ] } ] }
Давайте рассмотрим результаты:
- Я вижу 3 раздела.
- Все они имеют тип «категории».
Согласно документации, мы можем получить 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:
- Я не прошел ни один текст в запросе: я хочу все возможные POI в этой категории и рядом с этим местоположением.
- Категория добавляется в дополнительный параметр «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»