Установите уникальность Neo4j на NODE_PATH с помощью Neo4jClient

Чтобы мой путь не включал один и тот же узел более одного раза, я хочу установить уникальность NODE_PATH либо с помощью .Net Neo4jClient, либо на уровне базы данных в одном из файлов конфигурации базы данных (который, последний Я слышал, что это невозможно).

Если это можно сделать, я почти уверен, что это решит и эту проблему:

Cypher Query в Neo4j возвращает 'undefined'

Спасибо за любую помощь!

Брент


person Brent Barbata    schedule 13.02.2013    source источник
comment
Боюсь, ваш вопрос не совсем понятен. не могли бы вы предоставить хотя бы часть вашего запроса, который вы используете сейчас, и цель, которую вы хотите иметь в конце запроса?   -  person ulkas    schedule 14.02.2013
comment
Уникальность, как в структуре обхода (docs.neo4j.org /chunked/stable/) еще не представлен в Cypher. Хотя это в планах.   -  person Peter Neubauer    schedule 14.02.2013
comment
@PeterNeubauer (а также ulkas), спасибо за ответ. Да, именно об этом я и говорил. Мой граф представляет собой сеть полетов, поэтому вы можете себе представить, сколько существует путей к любому конкретному узлу (аэропорту). В настоящее время у меня заканчивается память, но даже если бы я дал машине больше, со всеми повторяющимися узлами в путях, обход занял бы слишком много времени. Если я правильно понимаю, возможно, я могу использовать REST API, чтобы установить уникальность, а затем таким образом получить свои данные. Есть идеи, как скоро Cypher сможет это поддерживать? Еще раз спасибо за то, что вы являетесь таким замечательным ресурсом здесь!   -  person Brent Barbata    schedule 19.02.2013


Ответы (1)


Брент,

Вы можете использовать предложение Cypher CREATE UNIQUE для создания отношения:

http://docs.neo4j.org/chunked/1.9.M05/query-create-unique.html#create-unique-create-relationship-if-it-is-missing

Если он уже существует, он ничего не сделает.

-- Татем

person Tatham Oddie    schedule 22.03.2013
comment
Это сработало? Если да, можете ли вы принять ответ? Если нет, можете ли вы объяснить, что не работает? - person Tatham Oddie; 02.04.2013
comment
Спасибо за ответ, но я думаю, что CREATE UNIQUE просто возьмет ваш запрос, сопоставит все, что может, а затем создаст любые новые отношения, указанные в вашем запросе, которых нет в вашем графике. Например, если бы я хотел найти все рейсы из A --> B, но ни один рейс не шел из A --> B, то график был бы изменен, и теперь был бы рейс из A --> B, который быть плохим (поскольку такого полета в реальности не существует). - person Brent Barbata; 09.05.2013
comment
Ах. Я совершенно неправильно понял вопрос. Вы просто пытаетесь сделать запрос. - person Tatham Oddie; 09.05.2013