2013-02-13 4 views
0

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

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

Cypher Query in Neo4j Returns 'undefined'

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

Brent

+0

Я боюсь, что вы не совсем понятны. не могли бы вы предоставить хотя бы часть вашего запроса, который вы используете сейчас, и цель, которую вы хотите получить в конце запроса? – ulkas

+1

Уникальность, как в структуре обхода (http://docs.neo4j.org/chunked/stable/tutorial-traversal-java-api.html#_uniqueness) еще не раскрыта в Cypher. Однако в планах. –

+0

@PeterNeubauer (а также ulkas), спасибо за ответ. Да, это именно то, о чем я говорил. Мой график - это полевая сеть, поэтому вы можете себе представить, сколько путей есть для любого конкретного узла (аэропорта). В настоящее время у меня заканчивается память, но даже если я дам машину больше, со всеми повторяющимися узлами на дорожках, обход займет слишком много времени. Если я правильно понимаю, возможно, я смогу использовать REST API, чтобы установить уникальность, а затем получить мои данные таким образом. Любая идея, как скоро cypher может это поддержать? Еще раз спасибо за то, что вы такой отличный ресурс! –

ответ

0

Brent,

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

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

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

- Tatham

+0

Это работало? Если да, можете ли вы принять ответ? Если нет, можете ли вы объяснить, что не работает? –

+0

Спасибо за ответ, но я думаю, что CREATE UNIQUE просто возьмет ваш запрос, совместим с тем, что он может, а затем создаст любые новые отношения, которые задает ваш запрос, который отсутствует в вашем графике. Например, если бы я хотел найти все рейсы из A -> B, но никаких полетов не пошло от A -> B, тогда график будет изменен, и теперь будет полетов из A -> B, что быть плохим (поскольку в действительности такого полета нет). –

+0

Ах. Я совершенно неправильно понял вопрос. Вы просто пытаетесь сделать запрос. –