Я использую плагин пространственного сервера для Neo4j 2.0, и мне удается добавить пользователей и города с их географическими свойствами широта/долгота в пространственный индекс «geom». К сожалению, я не могу получить правильный синтаксис, чтобы вернуть их через Neo4jClient :( В основном я хочу:
Переведите шифрованный запрос
START n=node:geom('withinDistance:[60.0,15.0, 100.0]') RETURN n;
в синтаксис Neo4jClient, чтобы я мог получить всех пользователей на заданном расстоянии от указанной точки.Еще более полезным было бы, если бы можно было вернуть узлы с их соответствующим расстоянием до точки?
Есть ли способ получить ближайшего пользователя или город из заданной точки без указания расстояния?
ОБНОВИТЬ
После некоторых проб и ошибок я решил вопрос 1 и проблему связи с пространством Neo4j через Neo4jClient. Ниже запрос Neo4jClient возвращает 1 пользователя, но только ближайшего, хотя база данных содержит 2 пользователей, которые должны быть возвращены. Я также безуспешно пробовал простой шифр через веб-интерфейс. Я совершенно неправильно понял, что должен делать внутриDistance? :) Неужели нет никого, кто мог бы дать небольшое представление о вопросах 2 и 3 выше? Было бы очень признательно!
var queryString = string.Format("withinDistance:[" + latitude + ", " + longitude + ", " + distance + "]");
var graphResults = graphClient.Cypher
.Start(new { user = Node.ByIndexQuery("geom", queryString) })
.Return((user) => new
{
EntityList = user.CollectAsDistinct<UserEntity>()
}).Results;