+7
Completed

Сузить сектор поиска в Подсказках

Anonymous 4 years ago in Подсказки • updated by Анастасия 7 months ago 23
Хотелось бы для сервиса подсказок иметь возможность при запросе сузить сектор поиска, задав часть параметров самостоятельно. Например через параметры:

$("#address").autocomplete({
   serviceUrl: https://dadata.ru/api/v1/suggest',
    dataType: 'jsonp',
    autoSelectFirst: true,
    params: {
              service: "lucene-address",
               city: "Санкт-Петербург"     
   },
     /* Вызывается, когда пользователь выбирает одну из подсказок */
     onSelect: function(suggestion) {
          console.log(suggestion);
      }
});

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

Answer

+1
Answer
Completed
Готово! Можно накладывать одиночные условия (регион, город, населенный пункт) или их комбинации. По кодам КЛАДР тоже можно ограничивать.

Вот демо-страница и исходные коды.
Достаточно часто в магазинах присутствует свой выбор Москва, Питер и Регионы, поэтому действительно было бы очень удобно иметь возможность передавать дополнительные параметры фильтрации, а также задавать маску в таком случае, потому что если выборка происходит по Москве, то логично что выводить в поле адреса Россия, г. Москва не особо имеет смысл. Конечно это можно фильтровать на уровне возвращаемых данных. Просто было бы удобней если бы был параметр указывающий что если передается параметр фильтрующий выборку, то эти данные в возвращаемом value не участвуют. 
Under review
Мы планировали добавить авто-определение региона и города по координатам (через Geolocation API), но, возможно, предусмотрим и ваш вариант. Спасибо за предложение!
Подскажите, будет реализован данный функционал? 
Очень полезный
Сейчас в разработке, будет доступен в мае.
май прошол эта фича уже есть?
Разумеется :-) Вся информация в моем ответе выше.
можно использовать подсказки более гибко ? т.е. пользователь по желанию в строке поиска вводит один или несколько параметров : область, город, улицу и дом. Примеры поиска: 1) Московская обл, 2) Московская обл, г. Клин, 3) Московская обл, г. Клин, ул. Ленина, 4) Московская обл, г. Клин, ул. Ленина, д2
Вообще-то, они ровно так гибко и работают :-) Попробуйте ввести четыре ваших примера на демо-странице — по всем будут подсказки.
просто меня смутила надпись (красным с воскл знаком) внизу справа от поиска - "укажите дом", "укажите улицу" или это мы сами меняем ?
 
Конечно, это просто демонстрация возможностей — можно напомнить пользователю, что он указал адрес не полностью. Но можно и не напоминать :-) Вот так выглядят подсказки по адресу в простейшем варианте.
у меня тоже несколько полей и эта фича бы пригодилась
Скажите, пожалуйста, долго ли ещё ждать данной полезной фичи?) Очень нужно искать улицу в пределах города.
Спасибо.
Судя по тому, как эти ребята выпускают новые фичи (раз в месяц), то скорее всего в конце мая :)
Вы чертовски правы, фича запланирована на конец мая :-)
+1
Добавить бы фильтр по регионам в каком-либо виде: массив масок по кодам КЛАДР к примеру в виде ['50*','77*'] для Москвы + ее области.
или же в виде массива диапазонов этих кодов, из которых предлагать подсказки [[7700..0,7799.99],[50..0,5099..9]] и т.д.
Начало месяца.
А где обещанная фишка? :)
Да, вы правы, обещали в мае, но не успели :-( Новая версия уже работает на сайте, но примеры и документация еще не актуализированы. Сделаем до конца недели.
+1
Answer
Completed
Готово! Можно накладывать одиночные условия (регион, город, населенный пункт) или их комбинации. По кодам КЛАДР тоже можно ограничивать.

Вот демо-страница и исходные коды.
Не корректно работает ограничение по городу / региону. Если в ограниченном поиске есть название пересекающееся с фильтром - подсказки для дома выводиться не будут.
Например, Московская область, город Орехово-Зуево, ул. Московская д. ....
Помимо Орехово-Зуево может быть к примеру Бронницы, не важно. Ограничение по КЛАД не помогает.
Вот пример: http://codepen.io/anon/pen/JdBBON
Надо найти: Московская обл, г Орехово-Зуево, ул Московская, д 5

Мой анонимный комментарий скрыт, не знаю отправлен или нет. Проблему можно увидеть даже на странице примера, если ввести: "Бронницы, ул Московская" и не выбирать подсказку, а дальше попытаться ввести дом - ничего не получится
Да, есть такая проблема. Обходной путь: использовать гранулярные подсказки либо принудительно дописывать область.
Принудительно дописывать область в принципе рабочий вариант, подойдет. Спасибо.
А то я за эти выходные уже испробовал все возможные варианты из документации, а такой метод нигде не описан вроде бы.