Автозаполнение и предложение с 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»