Комментарии 27
1.Необратимость ошибок. Если пользователь выбрал не ту строку — то узнать что же имелось ввиду невозможно.
2.Что делать если нет такого элемента в КЛАДР/ФИАС.
3.Что делать с латиницей.
4.Совершенно нет никакой методики сортировки вывода, которая б удовлетворила всех.
Кстати почему не включили в сравнение наш сайт www.iqdq.ru? Хотя сразу скажу — у нас где-то 300-500 мс. В середнячки по подбору. Мы на разбор целой строки нацелены.
По поводу сравнения с другими сервисами, я выложила исходники на гитхабе, так что можно добавлять новые модули для других сервисов и самостоятельно проводить тесты или попросить меня это сделать.
Что касается ошибок, то я как раз и говорю. Пусть человек введет как может всю строку, с ОрджАникидзе или МоскАва. И после ввода разобрать всю! строку. А вот если нет однозначности — то да мы можем подсветить варианты. Нюанс в том, что имея всю строку — я резко сокращаю количество вариантов в случае неоднозначности. Оператору гораздо проще выбирать из двух-трех, чем в случае побуквенного ввода будет вываливаться полтора десятка.
Собственно, то что я сейчас говорю проверено на работе операторов. Через нас ежедневно проходят сотни тысяч адресов. И мы пробовали разные версии интерфейсов для работы операторов. Идею подсказок отмели. Так как оператор очень быстро устает выбирать из большого количества вариантов при побуквенном вводе. Да и в разных случаях нужна разная сортировка. Где-то сначала город, где-то улица, а где-то хотелось бы населенный пункт.
В общем при побуквенном вводе количество ошибок на порядок больше.
Что касается тех, кто медленно вводит, то где-то могу согласится, хотя сегодня большинство людей довольно уверенно работают с клавиатурой даже в телефоне. Но вопросы остаются: какую сортировку подразумевает пользователь? Что делать с неполнотой эталона? Что делать с латиницей?
Ну и технически: Надо понимать, что побуженный ввод это поисковый запрос к базе при вводе каждой новой буквы и сортировка! А это дорого. Даже с учетом хешей. А разбор строки целиком даже с учетом ошибок и опечаток — это один запрос.
Оператору гораздо проще выбирать из двух-трех, чем в случае побуквенного ввода будет вываливаться полтора десятка.В статье я указала, что выбор подсказки осуществлялся из пяти, а не из полутора десятков вариантов. Согласитесь, что пять все-таки ближе к вашим «двум-трем». Поэтому полагаю, что мой эксперимент приближен к реальности.
В общем при побуквенном вводе количество ошибок на порядок больше.При выборе подсказок человек перестает набирать все буквы адреса. В моем эксперименте в случае успешной подсказки для города пользователю не приходилось набирать название региона, а это уже не мало. Город попадает в топ 5 подсказок примерно по трем первым буквам. Это вы видите из моей первой таблицы. А улица выбирается в среднем по первым двум буквам. Поэтому не понятно, почему при вводе 3+2 букв адреса количество ошибок растет.
Надо понимать, что побуженный ввод это поисковый запрос к базе при вводе каждой новой буквы и сортировка! А это дорого.В статье я оцениваю полезность подсказок как процент времени, которое экономит пользователь. Пользователь может сэкономить 70% своего времени на операции ввода почтового адреса, это очевидная польза для человека и для владельца интернет-магазина. Поэтому я не могу разделить с вами беспокойство по поводу излишней нагрузки на сервера. В конце концов, вычислительные системы призваны помогать человеку, а не наоборот.
Я сталкивался с такими задачами, и мой результат — 20-30мс. Цена вопроса — 3-4 дня.
К слову, сортировали мы по частоте клика в тот или иной пункт (выбор аэропорта, билетный сервис).
1. пробег от клиента до сервера 3-30мс (зависит от расстояния между пользователем и сервером)
2. выборка из кэша первой буквы 1-5 мс
3. пробег обратно 3-30 мс (зависит от расстояния между пользователем и сервером)
Итого 7-65 мс. в большинстве случаев.
Так 4 раза (от 7 до 65)х4 от 28 до 260мс.
Хотя проще клиентско закешировать адрес и всё=)
Чаще всего мы же 2-3 адреса вводим. Дом, работа и еще что нибудь.
Собственно, идеологически мне кажется лучше давать вводить в одну строку с ошибками и потом разбирать. Повторюсь, это мое частное мнение и оно как и любое другое может быть оспорено.
Переход с формальных описаний на естественный язык и обратно — вовсе нетривиальная задача.
Мой адрес оно не жрёт. Произвольный адрес ввести нельзя. На карту ткнуть точку нельзя. В итоге приходится вводить только адрес улицы для заданий.
А ещё (оффтоп) в графе «начать» подсказка к времени «укажите, когда задание должно быть выполнено». Но позвольте, ведь «выполнено» — это не начать, а закончить!
Браво! Масштабное исследование. Дополню немного (дисклеймер: я развиваю один из рассмотренных сервисов — Дадату).
Польза от подсказок не лежит в вакууме, а определяется сценарием использования. Так, если речь идёт об адресе в интернет-магазине, нужен правильный почтовый индекс или координаты (для курьерской доставки). Индексы отдают только Дадата, Кладр в облаке и Фиас24. Координаты отдаёт только Дадата.
Для расчёта стоимости доставки иногда надо знать район города. Дадата его отдаёт, остальные нет.
Человеку удобно, когда ему в первую очередь подсказываются «локальные» адреса (из того города, где он находится). Дадата это умеет, остальные нет. Кстати, именно с этим связно отсутствие города Мирного в вашем тесте — видимо, вы не в Якутии ツ
С точки зрения минимизации лишних телодвижений для человека максимум удобства достигается, если он может ввести адрес вообще в одну строку, не прыгая по полям. Для этого подсказки должны поддерживать ввод до дома или до квартиры. До дома из перечисленных сервисов умеют Дадата, Кладр в облаке, Фиас24 и Яндекс. До квартиры только Дадата.
Как работают подсказки в Яндекс Картах, можно посмотреть на… Яндекс Картах, поэтому ссылку на «демо» давать не буду.
А зря, потому что SuggestView намного «тупее», чем Яндекс-карты. Демка его здесь: https://tech.yandex.ru/maps/jsbox/2.1/search_control_ppo
Вот, например, какая польза от того, что человек в подсказках увидит индекс и район города? Это ведь лишняя информация, которая только мешает человеку искать среди подсказок свой адрес. Подсказка должна быть предельно лаконичной, именно тогда от неё будет польза.
Координаты, индекс и прочую информацию об адресе можно получить уже после того, как пользователь завершит вводить адрес. Для этого у нас есть отдельное API. Собственно также можно поступать, используя другие сервисы, о которых здесь написано.
По поводу «локальных адресов», чаще всего магазины доставляют по своему городу, вряд ли вы будете пиццу заказывать во Владивостоке. В этом случае правильнее не рассчитывать на геолокацию по IP-адресу, а просто зашить ограничение на город в самом интернет-магазине. Это можно сделать с любым из рассмотренных сервисов. Гораздо хуже, как мне кажется, когда в подсказках вместо «города Березовский» вываливается «Березовский сельский р-н». Не понятно, почему вы это позиционируете, как фичу?
По поводу номеров домов и квартир. Вы серьезно считаете, что человеку нужны подсказки для его дома и квартиры? Выше я написал про лаконичность, на мой взгляд, когда перед пользователем вываливается избыточная информация, он начинает отвлекаться на неё, как результат одну-две цифры своего номера он вводит дольше с подсказками, чем без них. Интересно, у вас есть свои оценки полезности подсказок для домов, можете их привести? Может быть мы тогда тоже добавим эту возможность у себя.
Ну а возможность ввести адрес одной строкой есть, вроде бы, у всех сервисов, про которые тут сказано. По крайней мере, в Ахантере вводить дом и кваритру в одну строку с адресом можно без проблем, поэтому с «минимизацией лишних телодвижений для человека» тут полный порядок.
Ребята из Ахантера, я вот ваше API тестировал для имен (и даже в похожей статье сравнения вас упоминал), а потом для адресов. С именами ладно, вот по адресам много вопросов к вам возникло тогда :) А сейчас читаю ваш коммент и, простите, не удержусь его разобрать публично:
Вот, например, какая польза от того, что человек в подсказках увидит индекс и район города?
Про индекс не знаю, а вот про районы очень даже знаю :) Мне были нужны районы городов, чтобы стоимость доставки считать, а вы в них не умеете.
чаще всего магазины доставляют по своему городу
Что значит «чаще всего»? :) Много кто доставляет по всей России, потому что отправляет товар почтой по всей России. Будем предлагать пользователю выбрать город руками?
Координаты, индекс и прочую информацию об адресе можно получить уже после того, как пользователь завершит вводить адрес. Для этого у нас есть отдельное API.
То есть вы мне под предлогом «избыточности» отдаете куцые данные, а если мне надо больше данных – предлагаете для решения задачи юзать ваше платное API стандартизации адресов, прикручивать на бэкенд дополнительную логику обработки адресов, и считаете что это окей и называется «можно получить»? :) Нет, нельзя, во всяком случае очень неудобно. Зато есть офигенно полезный параметр request_process_time.
По крайней мере, в Ахантере вводить дом и кваритру в одну строку с адресом можно без проблем
Можно узнать, как? Мне вот ваше API Подсказок отдает пустой ответ на «санкт-петербург ул 2 жерновская д 26».
Мне были нужны районы городов, чтобы стоимость доставки считать...Подскажите, а в каких городах РФ стоимость доставки зависит от района города? Я сам в Москве живу, и где бы я не находился, доставка мне всегда обходится в 300 рублей, независимо от района. Вопрос без иронии, просто хочу понять, насколько ваш кейс распространён.
А по существу вашего вопроса, я не понял какое отношение расчёт стоимости доставки имеет к тому, что пользователь видит в подсказках? Выше я написал про избыточность информации, которая мешает пользователю искать свой адрес. Вот давайте вернемся к примеру с «городом Березовский», покупатель видит подсказку для него «г Краснодар, Березовский сельский р-н». Сколько пользы получит он от такой подсказки?
Что значит «чаще всего»? :) Много кто доставляет по всей России, потому что отправляет товар почтой по всей России. Будем предлагать пользователю выбрать город руками?Я сослался на пример про пиццу, как на пример местечкового магазина, который не рассчитывает продавать продукцию в соседние города. Мне кажется, что таких маленьких магазинов по статистике больше, чем крупных, которые ориентированы на охват всей России. Возможно, я ошибся, если у вас есть иная статистика, приношу извинения. Ну а касательно крупных магазинов, в которых пользователь заказывает из другого города, то, на мой взгляд, проблемы указать свой город явно здесь нет. Цена вопроса, вроде бы, две-три буквы. Наоборот, пользователь видит явно свой город, его уверенность в том, что он делает всё правильно растёт. Это, конечно, вопрос юзабилити и здесь важно мнение конечных пользователей. Тем не менее, мне кажется, это лучше, чем получать «проезд Мирный 2-ой» вместо «города Мирный».
То есть вы мне под предлогом «избыточности» отдаете куцые данные, а если мне надо больше данных – предлагаете для решения задачи юзать ваше платное API стандартизации адресовЗдесь каждый для себя выбирает сам. Либо вы платите за подсказки, либо платите за проверку адресов в уже оформленных заказах.На Ахантере вам не надо платить за подсказки и не играет никакой роли, в каком количестве ваши покупатели нащёлкают их у вас на сайте. Да, в нашем случае вам придётся заплатить 10 копеек за получение координат и прочей информации об адресе. Но заказ-то уже оформлен, неужели 10 копеек сильно снизят вашу прибыль от него?
Можно узнать, как? Мне вот ваше API Подсказок отдает пустой ответ на «санкт-петербург ул 2 жерновская д 26».
Вот так у нас на сайте выглядит ввод вашего адреса.

Как видно, подсказки появляются без проблем. После выбора вашей улицы просто вбейте номер дома в конце строки. Подсказки для номеров домов вы там не увидите, т.к. мы считаем их бесполезными, поскольку полагаем, что человек больше времени тратит на поиск и выбор своего дома в предложенном списке. Я об этом выше написал. Если у вас есть другой опыт, поделитесь, пожалуйста, а мы со своей стороны охотно добавим этот функционал в наш сервис.
Я понимаю что создатель данной ВЕЛИКОЛЕПНОЙ (без иронии) статьи мог про нас и не слышать, но вы то нас хорошо знаете.
Что касается вывода доп параметров так Ахантер Вам ответил. Это дело 5 минут и выделанного яйца не стоит для программистов. Вопрос в потребности.
Я понимаю что создатель данной ВЕЛИКОЛЕПНОЙ (без иронии) статьи мог про нас и не слышатьДа, ваш сервис с ходу не попался на глаза. Постараюсь включить его в обзор в ближайшие выходные.
Чисто из любопытства, подскажите сколько дней вам потребовалось, чтобы выполнить тест для Google с учётом обозначенных квот?
Вообще по всем сервисам интересно, удалось ли уложиться в лимиты или тест длился несколько дней?
Буду следовать вашим идеям в разработке.
А что если «задом наперёд»?
Было бы круто вбивать сначала номер дома (и корпуса) — потому что он короткий и его по любому надо указать. Потом улицу — выборка из «подходящих» по номеру дома улиц и проспектов. И так далее.
Вдруг так будет быстрее?
Хорошо ли подсказывают сервисы подсказок: измеряем полезность веб-сервисов автодополнения