Комментарии 56
НЛО прилетело и опубликовало эту надпись здесь
У нас база КЛАДР, но разница невелика, на самом деле :-) А что не так с номерами домов и улиц — можете привести пример?
НЛО прилетело и опубликовало эту надпись здесь
«2-й рощинский проезд, 301» — так в подсказках и нет такого адреса. Вы, может быть, имеете в виду API стандартизации? Там мы действительно разрешаем отсутствующие в КЛАДР номера домов, так как что в КЛАДР, что в ФИАС есть далеко не все дома страны.
«5-ая улица Ямского поля дом дом 5, строение 1» — да, с такими улицами есть некоторые проблемы как раз в стандартизации, работаем над этим.
«5-ая улица Ямского поля дом дом 5, строение 1» — да, с такими улицами есть некоторые проблемы как раз в стандартизации, работаем над этим.
От всей команды «Кладра в облаке» скажу, что нам очень стыдно, что мы так безбожно затянули релиз поиска одной строкой. Ведь начали его делать уже более чем 4 месяца назад, а подготовленная база данных со всеми штуками и индексами давно уже на продакшене.
Плюс у нас в тесте пачка других фич, но финально дотестить, вылезать все моменты и тп, ну, кому я это рассказываю, вы сами все понимаете. Наши любимые пользователи, прошу простить и понять :) скоро все будет! :)
Плюс у нас в тесте пачка других фич, но финально дотестить, вылезать все моменты и тп, ну, кому я это рассказываю, вы сами все понимаете. Наши любимые пользователи, прошу простить и понять :) скоро все будет! :)
В опросе не звучало «бесплатный», поэтому отвечу: используем 2Гис. Гемороя тоже достаточно, бывает возвращает не релевантные результаты, или дубликаты одного и того же адреса. Ну и платный он, к тому же не так уж и дешево.
В связи с этим, сделали следующую схему: изначально поиск проходит по нашей базе данных (импортировано около 60 000+ адресов Питера, поиск только по этому городу необходим), все индексируется в ElasticSearch, поэтому скорость хорошая. Далее, если адрес не найден, производится попытка получения у 2Гис. В принципе, работает неплохо.
В связи с этим, сделали следующую схему: изначально поиск проходит по нашей базе данных (импортировано около 60 000+ адресов Питера, поиск только по этому городу необходим), все индексируется в ElasticSearch, поэтому скорость хорошая. Далее, если адрес не найден, производится попытка получения у 2Гис. В принципе, работает неплохо.
А ещё есть OpenStreetMap и Nominatim — адресный поиск для него. Правда, я не пробовал использовать его именно как источник вариантов для автодополнения, но это вполне возможно — Номинатим возвращает массив, содержащий до десяти подходящих результатов. Среди возвращаемого есть и адрес одной строкой.
Допустимая интенсивность использования, согласно Usage policy — не более одного запроса в секунду.
Допустимая интенсивность использования, согласно Usage policy — не более одного запроса в секунду.
OSM кривоват немного.
Когда я сводил воедино КЛАДР и OSM только — Левенштейн и спасал.
Ну и не содержит он многие полезные данные (окато/октмо). Хотя дает для ОМК УМ, который даже не знаю где еще можно взять.
Каждый раз когда слышу про эти автокомплиты и кладры в облаке — совесть мучает.
Сам обладаю почти что самой полной базой данных, а АПИ не приделал (в том числе даже для себя)
Когда я сводил воедино КЛАДР и OSM только — Левенштейн и спасал.
Ну и не содержит он многие полезные данные (окато/октмо). Хотя дает для ОМК УМ, который даже не знаю где еще можно взять.
Каждый раз когда слышу про эти автокомплиты и кладры в облаке — совесть мучает.
Сам обладаю почти что самой полной базой данных, а АПИ не приделал (в том числе даже для себя)
В своих проектах испольую базу ФИАС и самописное приложение django-fias
Это конечно не сервис, но вдруг кому пригодится.
ЗЫ
полнотекстовый поиск так же имеется
Это конечно не сервис, но вдруг кому пригодится.
ЗЫ
полнотекстовый поиск так же имеется
Спасибо за ссылку — посмотрю ваше приложение.
Некоторое время назад тоже конвертировал (для проекта на django) БД ФИАС из dbf в PostgreSQL, но не всю а только для нужного региона — взамен устаревшему КЛАДРу, который использовался для автодополнения улиц.
Хотел спросить — как вы обновляете БД — заново импортируете все с нуля, икрементно апдейты заливаете или еще как-то?
База-то очень большая.
Заранее спасибо!
Некоторое время назад тоже конвертировал (для проекта на django) БД ФИАС из dbf в PostgreSQL, но не всю а только для нужного региона — взамен устаревшему КЛАДРу, который использовался для автодополнения улиц.
Хотел спросить — как вы обновляете БД — заново импортируете все с нуля, икрементно апдейты заливаете или еще как-то?
База-то очень большая.
Заранее спасибо!
Обновляется инкрементно, благо, налоговая соответствующее API предоставила.
База действительно большая (сейчас где-то 1 200 000 записей — это только адреса. домов вообще не считал сколько) и процесс обновления не особо оптимизирован — одно из обновлений весит около 500 мб (76 или 77 версия) в архиве — оно у меня пол дня обновлялось.
База действительно большая (сейчас где-то 1 200 000 записей — это только адреса. домов вообще не считал сколько) и процесс обновления не особо оптимизирован — одно из обновлений весит около 500 мб (76 или 77 версия) в архиве — оно у меня пол дня обновлялось.
Очень приятно начинать день с таких хороших постов про свой сервис, спасибо большое за настроение:)
По поводу АПИ — мы активно работаем и развиваем его, скоро появится много нового как с точки зрения функционала, так и с точки зрения взаимодействия. Вдобавок, мы внимательно слушаем все отзывы, если хотите видеть что-то определённое — пишите!
В БД используется КЛАДР.
По поводу АПИ — мы активно работаем и развиваем его, скоро появится много нового как с точки зрения функционала, так и с точки зрения взаимодействия. Вдобавок, мы внимательно слушаем все отзывы, если хотите видеть что-то определённое — пишите!
В БД используется КЛАДР.
Всегда пожалуйста, тем более это я Вам должен говорить спасибо за хороший продукт.
Хочу видеть ограничение области поиска по области/городу. В идеале, чтобы можно было ограничить несколькими областями (например Москва/МО + Санкт-Петербург/Ленобласть)
Хочу видеть ограничение области поиска по области/городу. В идеале, чтобы можно было ограничить несколькими областями (например Москва/МО + Санкт-Петербург/Ленобласть)
Сделали! Можно накладывать одиночные условия (регион, город, населенный пункт) или их комбинации. По кодам КЛАДР тоже можно ограничивать.
Вот демо-страница и исходные коды примера.
Вот демо-страница и исходные коды примера.
Заинтриговал критерий
Что за сервис у вас такой?
100%й uptime не обязателен
Что за сервис у вас такой?
99% уже не 100%, но считается нормой, так что я думаю имелось ввиду это.
Интернет магазин. Я думаю, Вы согласитесь, что автодополнение адреса в интернет магазине — вещь приятная, но вовсе необязательная. И если вдруг uptime будет процентов даже 95%, ничего страшного не произойдет, пользователь и сам введёт адрес.
Нет, не соглашусь.
Если по вине сервиса сорвется оформление, то уж лучше пусть не будет такого сервиса, чем 95% uptime.
99.5 — это еще можно пережить.
Если по вине сервиса сорвется оформление, то уж лучше пусть не будет такого сервиса, чем 95% uptime.
99.5 — это еще можно пережить.
95%?
Т.е. вы считаете нормальным, что ваш интернет магазин не будет работать ежедневно 1 час и 12 минут?
Т.е. вы считаете нормальным, что ваш интернет магазин не будет работать ежедневно 1 час и 12 минут?
Я же не про магазин, а про то, что автодоплнение может и не работать. Магазин будет работать.
Не очень понятно, почему искалось именно такое дополнение, которое может работать, а может и не работать. Не лучше сразу стремиться к тому, чтобы все работало без сбоев?
Потом, в случае отключения автозаполнения, нужно продумывать дублирующий интерфейс — опасный путь. На этапе оформления крайне желательно максимально упростить и обеспечить безотказность, иначе, велик риск потери клиента. А клиент, начавший оформление — это совсем не просто посетитель, он дорогого стоит.
Потом, в случае отключения автозаполнения, нужно продумывать дублирующий интерфейс — опасный путь. На этапе оформления крайне желательно максимально упростить и обеспечить безотказность, иначе, велик риск потери клиента. А клиент, начавший оформление — это совсем не просто посетитель, он дорогого стоит.
НЛО прилетело и опубликовало эту надпись здесь
Я использую плагин Lazarus Form Recovery в своём браузере. Он запоминает все формы на сайте, и, если что, их можно восстановить, нажав на этот анкх.
goooseman, спасибо за обзор! А можете пояснить свою мысль? Чем у DaData неочевиден POST и в чем скудность API? Мы будем рады сделать его более удобным :-)
Кстати, помимо подсказок у нас есть стандартизация и проверка телефонов и email. Ее тоже можно вызывать на клиенте, вот пример. Удобно для валидации форм.
Кстати, помимо подсказок у нас есть стандартизация и проверка телефонов и email. Ее тоже можно вызывать на клиенте, вот пример. Удобно для валидации форм.
Нет общественных мест (аэропорты, кафе, театры и т.д.). У Google Geocode они есть
Большинство сейчас используют GET, и я сначала пытался достучаться GETом, пока не почитал документацию) Хотя это не так уж и важно.
Скудность API:
Хотя лично мне, как и многим это всё не надо, ну кроме области поиска.
Скудность API:
- Нет возможность ограничить область поиска через параметры. (хотелось бы, например, ограничить только Москвой и МО). Добавлять 'Москва' в query — костыль.
- Нет возможности указать типы мест, которые надо искать
- Нет возможности ограничить кол-во объектов (хотя это уже можно сделать и на клиенте)
- Нет возможности возврата объекта без родительских (Вводишь 'Мантулинская' и получаешь 'ул. Мантулинская', а не 'Россия, г. Москва, ул. Мантулинская'
Хотя лично мне, как и многим это всё не надо, ну кроме области поиска.
Ага, теперь понятно, спасибо.
Ограничение области поиска сделаем обязательно в ближайшие пару месяцев.
Объект без родительских удобно настраивать на клиенте, как мне кажется (пример есть на той же демо-странице).
Количество возвращаемых объектов — да, хорошая мысль, возможно, вынесем в API.
А типы мест — что это? Искать только города или только улицы?
Ограничение области поиска сделаем обязательно в ближайшие пару месяцев.
Объект без родительских удобно настраивать на клиенте, как мне кажется (пример есть на той же демо-странице).
Количество возвращаемых объектов — да, хорошая мысль, возможно, вынесем в API.
А типы мест — что это? Искать только города или только улицы?
Да, понял вас. Если поймем, что это сильно востребовано, то, конечно, сделаем.
В итоге сделали гранулярные подсказки по областям, городам, улицам и домам.
А, ну и кстати, все остальное тоже уже есть:
ограничить область поиска через параметры (и там же «возвращать объект без родительских»)
ограничить кол-во объектов
ограничить область поиска через параметры (и там же «возвращать объект без родительских»)
ограничить кол-во объектов
А почему в списке нет Один из сервисов Геокодирования Yandex.Карт
Я бы наверное его использовал бы с связке с chosen )
Я бы наверное его использовал бы с связке с chosen )
Спасибо за статью! Видно, что проделана большая работа!
Хотелось бы отметить, что подсказки дадата — это большее, чем просто ввод адреса. Уже сейчас для введенного адреса можно получить площадь квартиры и индекс, а в будущем будут еще геокоординаты, станции метро и прочая полезная информация об адресе.
Хотелось бы отметить, что подсказки дадата — это большее, чем просто ввод адреса. Уже сейчас для введенного адреса можно получить площадь квартиры и индекс, а в будущем будут еще геокоординаты, станции метро и прочая полезная информация об адресе.
Индекс я увидел, но где посмотреть данные о площади квартиры? Вроде есть поля settlement и settlement_type, но они пустые, какой бы я дом не ввел.
Это, к сожалению, пока через одно место сделано — нужно дернуть API dadata dadata.ru/api и передать ему адрес, тогда вернется площадь квартиры
В апреле сделаем все в рамках текущего API
В апреле сделаем все в рамках текущего API
Площадь квартиры добавили в апреле, а теперь еще и код ИФНС.
Только что заметил странное поведение Google Place Autocomplete — поиск по России и вне ее происходит по-разному:
1) Ищем по России. Например, «Нижний Новгород».
Результат — «Россия, Нижегородская область, Нижний Новгород», порядок такой: Страна, Регион, Город
2) Ищем вне России, «Атырау»
Результат — «Атырау, Атырауская, Казахстан», то есть порядок другой: «Город, Регион, Страна»
3) Пробуем еще вне России, «Киев»
«Киев, город Киев, Украина»
Баг это или нет, не понятно, пока нагуглить на эту тему не получилось.
Возможно, связано с текущей локацией — откуда идет запрос. Но имхо порядок должен быть всегда одним и тем же.
1) Ищем по России. Например, «Нижний Новгород».
Результат — «Россия, Нижегородская область, Нижний Новгород», порядок такой: Страна, Регион, Город
2) Ищем вне России, «Атырау»
Результат — «Атырау, Атырауская, Казахстан», то есть порядок другой: «Город, Регион, Страна»
3) Пробуем еще вне России, «Киев»
«Киев, город Киев, Украина»
Баг это или нет, не понятно, пока нагуглить на эту тему не получилось.
Возможно, связано с текущей локацией — откуда идет запрос. Но имхо порядок должен быть всегда одним и тем же.
Ограничить поиск в Google Autocomplete одним городом можно, например, так.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Сравнение сервисов для автодополнения адресов в форме