У меня есть проект, который позволяет пользователям искать POI с помощью Elasticsearch, и они могут фильтровать по нескольким атрибутам, включая местоположение. Я хотел бы добавить огранку ко всем фильтрам, большинство из которых являются категориальными переменными, для которых огранка идеальна. Тем не менее, я также хочу, чтобы пользователи имели возможность разбивать по местоположению/городу/метро. Каждое место в настоящее время представляет собой пару lat/long.Граничение по геолокации в Elasticsearch (кластеризация)
Из моих исследований кажется, что наилучшим подходом является использование кластеров k/l пар лат/длин, чтобы получить наиболее распространенные группировки мест для огранки. Как только у меня появятся эти группы, я хотел бы предоставить наиболее узнаваемое имя для этой области (например, даже если «Бруклин» был центром кластера, я бы хотел указать название «Нью-Йорк Сити»).
(a) Можно ли выполнить геоклассирование (k-средство или любой другой способ) в Elasticsearch, чтобы обеспечить огранку по местоположению? Если да, то как? Если нет, это можно сделать вместо Postgres? (б) Как я могу убедиться, что я предоставляю наиболее широко узнаваемое политическое имя для любого региона, возвращенного кластеризацией?
Ничего хорошего при кластеризации. К-средства также являются довольно плохим выбором. (как вы устанавливаете k и не разрешаете ему разрезать прямо через бруклин?) –
@ Anony-Mousse, очевидно, я не эксперт в этом. Какой метод вы бы рекомендовали вместо этого? – jdotjdot