0
Отвечен

Добрый день. А это не ошибка?

Анонимный 8 лет назад обновлен Антон Жиянов 7 лет назад 24

Image 298

Ответ

Ответ
Отвечен

Насколько я понимаю, у вас сейчас работает так:

  1. Пользователь вводит адрес.
  2. Вы шлете запрос с count=1 и адресом, введенным на шаге 1.

Подсказки не рассчитаны на такой сценарий работы. Пользовательский адрес должен отправляться в подсказки с count > 1. И только когда человек выбрал конкретный адрес из числа предложенных подсказками, идет запрос с count = 1.


Так всё будет работать.

На рассмотрении

У меня результат такой:


Возможно, ваша выдача связана с геолокацией. Можете написать свой IP-адрес?

У меня сейчас тоже такой результат. Это и смущает) А от IP адреса что-то зависит? У нас например сервер колцентра может находиться в Н-Н, а заказы принимаем для Москвы. А виртуальный сервер может вообще стоять где-нибудь в европе.

Подсказки определяют по айпи-адресу город, и стараются в первую очередь подсказывать «местные» адреса. Мы называем это «геолокацией». Если работать с подсказками будут операторы контактного центра, а заказы принимаете по всей стране, геолокацию лучше отключить.


Вообще, даже при включенной геолокации не должно быть такого результата, как на вашем скриншоте. Поэтому я и спросил айпи-адрес, чтобы это проверить.

А не подскажете, есть ли отключение геолокации (и включение принудительной) где-нибудь в описании/документации?

А есть такой пример на REST API?

Добрый день. Подскажите еще пожалуйста по принудительной геолокации.

Вот такой запрос не возвращает подсказки

{"count":1,"locations":[{"city":"Москва","region":"Москва"}],"query":"Краснобогатырская ул, д.79"}


кстати такой тоже

{"count":1,"locations":null,"query":"Краснобогатырская ул, д.79"}


работает только такой


{"count":1,"locations":null,"query":"Москва, Краснобогатырская ул, д.79"}


Уберите count = 1, и все будет работать.

Но мне нужно именно count=1)) т.е. с геокоординатами и с районом города

Если вы используете подсказки чтобы облегчить пользователю ввод адреса, count=1 нужен только в самом конце, когда человек уже выбирает конкретный адрес из списка подсказок. В этот момент в адресе присутствует и регион, и город. То есть запросов вида «Краснобогатырская ул, д.79» с count=1 быть не должно.

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

{"count":1,"locations":null,"query":"Москва, Краснобогатырская ул, д.79"}

вместо такого
{"count":1,"locations":[{"city":"Москва","region":"Москва"}],"query":"Краснобогатырская ул, д.79"}

Примерно. Только я говорю исключительно про query. locations вы какой один раз задали в начале, такой пусть и остается.

просто я боюсь что это не совсем "принудительная геолокация", и адрес "Москва, Краснобогатырская ул, д.79" будет искаться по всей базе, по всей стране

Ну и пусть ищется по всей стране, в чем проблема?

Вот такой запрос ничего не возвращает

{"count":1,"locations":null,"query":"Московская обл, Алексино д, Заречная ул, д.3"}


Хотя в примерах тут https://dadata.ru/suggestions/

если вбить эту строку поиска, то все работает

Такой запрос тоже возвращает 0 подсказок

{"count":1,"locations":null,"query":"Московская обл, с\/п.Совхоз имени Ленина, д.2"}


Подумал, может проблема со свойством locations. Нет, без него тоже ничего не выдает, например

{"count":1,"query":"Московская обл, с\/п.Совхоз имени Ленина, д.5"}

0 подсказок

> Московская обл, Алексино д, Заречная ул, д.3

> Московская обл, с\/п.Совхоз имени Ленина, д.5


Откуда вы берете эти адреса?

Добрый день. Пожалуйста, можно ли исправить/доработать. Очень и очень не удобно.

Поиск по адресу например "Московская обл, р-н.Ленинский с/п.Совхоз имени Ленина, д.15", с признаком count=1 не работает.

Приходится объяснять операторам, "если завершающий поиск не работает, удаляйте номер дома".

У них сносит крышу, они вообще не понимают о чем их просят.

Форум как-то странно работает. Я думал вы удалили предыдущие сообщения и повторил просьбу. Сейчас они опять появились.


Совхоз имени Ленина - это сельское поселение в московской области. У них нет улиц, только дома. Это реальный адрес.

У вас на сайте этот адрес ведь тоже есть.

Просто с count=1 не работает.


Ответ
Отвечен

Насколько я понимаю, у вас сейчас работает так:

  1. Пользователь вводит адрес.
  2. Вы шлете запрос с count=1 и адресом, введенным на шаге 1.

Подсказки не рассчитаны на такой сценарий работы. Пользовательский адрес должен отправляться в подсказки с count > 1. И только когда человек выбрал конкретный адрес из числа предложенных подсказками, идет запрос с count = 1.


Так всё будет работать.

Именно так и есть.

Пользователь вводит адрес. При каждой новом символе делается запрос с count=10.

Ему выпадает список из 10 подсказок. Затем пользователь выбирает одну строку из списка. При этом идет запрос count=1


Последний запрос count=1 ничего не возвращает. Попробуйте сами.

{"count":1,"locations":null,"query":"Московская обл, р-н.Ленинский с\/п.Совхоз имени Ленина, д.22"}


Вот пример из лога:


address=Московская обл, совх®ion=&city=&count=10

address=Московская обл, совхоз им®ion=&city=&count=10
address=Московская обл, совхоз име®ion=&city=&count=10
address=Московская обл, совхоз имени ®ion=&city=&count=10
address=Московская обл, совхоз имени ле®ion=&city=&count=10
address=Московская обл, совхоз имени лени®ion=&city=&count=10
address=Московская обл, совхоз имени ленина®ion=&city=&count=10

address=Московская обл, р-н.Ленинский с/п.Совхоз имени Ленина, д.22®ion=&city=&count=1

После того, как пользователь выбрал конкретную подсказку из списка, на сервер должен идти запрос с полем unrestricted_value из выбранной подсказки:

{"query":"Московская обл, Ленинский р-н, с/п Совхоз имени Ленина, д 22 ","count":1}

И так всё работает.

Сервис поддержки клиентов работает на платформе UserEcho