Создание сервисов разрешения адресов с помощью Redis Search


Обзор проекта

Геокодер — это сервис для сопоставления адресов и географических местоположений. Геокодеры используют как геопространственные запросы, так и полнотекстовый поиск для преобразования входящих данных в адреса и местоположения из проверенного набора адресов.

Например, если разработчик хочет преобразовать TIMES SQ MANHATTAN в полный адрес с координатами, он может сделать запрос к API прямого геокодирования. Этот API, вероятно, применит алгоритм полнотекстового поиска по известной базе данных адресов и вернет список потенциальных совпадений (например, TIMES SQ MANHATTAN -> ["5 TIMES SQUARE MANHATTAN 10036", "42 TIMES SQUARE MANHATTAN 10036"]).

В качестве альтернативы, если разработчик хочет разрешить (40.768044, -73.982372), он может использовать API обратного геокодирования. Обратное геокодирование использует геопространственный поиск для предоставления подтвержденных местоположений, которые находятся рядом с запрашиваемой точкой (например, (40.768044, -73.982372) -> 2 COLUMBUS CIR MANHATTAN 10019).

За последние несколько дней я создал геокодер, который использует Redis Search для осуществления прямого и обратного геокодирования по примерно 1 миллиону адресов Нью-Йорка.

Затем, используя Redis Pub/Sub, я расширил этот сервис, чтобы обеспечить конечную точку пакетного разрешения адресов. С помощью этой пакетной службы разработчики могут делать запросы на геокодирование и легко делиться полученными адресами. В видео, ссылка на которое приведена ниже, я подробно рассказываю об архитектуре системы и о том, как Redis обеспечил работу этого сервиса.

Видео о проекте

Детали представления

  • Категория представления: Мавены микросервисов
  • Используемый язык: Go

Полное описание проекта доступно на GitHub-репо проекта ниже. В репозитории gcaas содержится подробная информация о структурах данных, используемых для каждого компонента приложения, и все примеры данных, показанные в видеопрохождении.

DMW2151 / gcaas

Заявка на Redis 2022 Hackathon — API геокодирования

Геокодирование с помощью Redis

Геокодер — это сервис для сопоставления адресов с географическими местоположениями и объектами, содержащими эти адреса. Геокодеры используют как геопространственные запросы, так и полнотекстовый поиск для поиска неполных адресов по адресам и местоположениям из проверенных. В этом репозитории собран геокодер, использующий Redis Search и PubSub для предоставления услуг синхронного и асинхронного геокодирования. Я подробно рассказываю о реализации этого приложения в этом видео.

Описание приложения

Рисунок 1.0 Архитектура синхронного геокодирования
  • API синхронного геокодирования позволяет пользователю отправить запрос на адрес или местоположение и получить список найденных, потенциально подходящих адресов. См. примеры ниже.
# sample forward query :: address -> (address, coordinates)
curl -XPOST https://gc.dmw2151.com/geocode/ 
-d '{"method": "FWD_FUZZY", "max_results": 3, "query_addr": "ATLANTIC AVE BROOKLYN"}'
{
  "result": [
    {
      "address": {
        "location": {
          "latitude

Вход в полноэкранный режим Выход из полноэкранного режима
Посмотреть на GitHub

  • Ознакомьтесь с Redis OM, клиентскими библиотеками для работы с Redis как многомодельной базой данных.
  • Используйте RedisInsight для визуализации данных в Redis.
  • Подпишитесь на бесплатную базу данных Redis.

Оцените статью
devanswers.ru
Добавить комментарий