Apache CouchDB n-мерная индексация через Geo Couch

В настоящее время я пытаюсь найти хорошую документацию по Geo Couch и посмотреть, смогу ли я реализовать n-мерную индексацию. Мне нужно реализовать гео Spacial функционально. Это я нашел наивным решением моей проблемы. Поскольку у меня есть 12-мерное пространство признаков, которое можно сразу представить себе как метрическое пространство с помощью, например, евклидовой метрики, мне нужно кластеризовать точки в этом 12-мерном пространстве и запрашивать k-ближайших соседей, если у кого-то есть лучшее решение или можете указать мне правильное направление при использовании Geo Couch и CouchDB, пожалуйста, ответьте на этот пост.

1 ответ

Документация Couchbase для геопространственных представлений в настоящее время отражает только старый API, так что это не очень помогает для новых многомерных функций.

Лучшая документация, на которую я могу вам указать, - https://github.com/couchbase/geocouch/wiki/Spatial-Views-API. Под заголовком Array вы найдете:

Поскольку пространственные представления теперь многомерны, вы указываете ключ как массив, где каждый элемент является одним измерением. Каждое измерение может быть одним значением или диапазоном. Поддерживаются только числа (есть один особый случай для геометрий GeoJSON, см. Ниже).

А в разделе " Запросы" вы увидите, что:

Запросы для пространственного представления имеют два новых параметра запроса (start_range и end_range), которые предпочтительнее, чем параметр bbox.

В основном вы можете испустить ключ, как [0.0001, -0.0001, [2012,2014]] возможно, чтобы указать на наличие объекта вблизи острова Нулла в течение двух лет. Тогда вы можете запросить start_range=[-0.5, -0.5, 2013]&end_range=[0.5, 0.5, null] чтобы найти все в этом районе с 2013 года и в любое время после этого, таким образом, перекрывая этот образец элемента.

Я не думаю, что k-ближайшие поиски были выпущены, хотя я думаю, что когда-то был патч прототипа. Вы можете узнать об этом на форумах Couchbase, в системе отслеживания ошибок GeoCouch или, возможно, напрямую спросить @vmx. Возможно, вы могли бы реализовать "версию бедняка ", ограничивая результаты и просматривая ограничивающие рамки большего / меньшего размера, пока не будет найден правильный набор результатов - очевидно, не такой оптимальный в зависимости от того, как распределяются ваши данные.

Другие вопросы по тегам