#java #elasticsearch #pattern-matching #geocoding #facet
#java #elasticsearch #сопоставление с шаблоном #геокодирование #фасет
Вопрос:
Учитывая две строки, представляющие местоположения, как мы можем определить, являются ли оба одинаковыми или разными местоположениями.Например. «Бангалор, Карнатака» и «Бангалор, Индия» — это одно и то же местоположение, которое является Бангалором. У меня есть веб-приложение с текстовым полем для «местоположения», и пользователь может указать значения, как указано в приведенном выше примере. Входные значения сохраняются в elasticsearch, и позже мне нужно найти разные местоположения. Для этого я использую термин Facet в elasticsearch, но я получаю две записи: «Бангалор, Карнатака» и «Бангалор, Индия». Каким-то образом мне нужно определить, что оба являются одинаковыми местоположениями. Я с нетерпением жду решения на основе Java для этого.
Комментарии:
1. как насчет
Bangalore, Spain
?2. Концептуально, то, что вы ищете, — это отображение города, штата, страны. без этого это будет невозможно.
Ответ №1:
Я бы использовал Java API с геокодированием, такой GeoGoogle. Это открытый исходный код. С помощью этого вы можете вызвать:
GeoUtils.distanceBetweenInKm(firstAddress.getCoordinate(), secondAddress.getCoordinate());