2013-04-27 4 views
2

Как следует автоматизировать индексы с помощью новой функции метки в neo4j 2.0. Создав автоиндекс, скажем, «имя» в объекте пользователя продолжает создавать общий индекс имен для всех объектов или есть способ указать, что он должен быть только для пользовательского типа/метки.Как использовать автоиндексы с метками neo4j 2.0

Следует ли вместо этого создать объект и индекс в транзакции атомарного шифрования?

Пример использования может быть пользовательским объектом с указанием уникального индекса имени пользователя.

ответ

1

В 2.0 Этикетки - отличная возможность. Я бы не рекомендовал автоматическую индексацию. С пользовательской индексацией на ярлыке вы можете добиться уникального создания объектов. Поток выглядит так: Сначала создайте индекс на этикетке, скажем, «Пользователь» - это метка, чтобы идентифицировать пользователя.

create index on :User(username) 

Теперь у вас есть индекс над «имя пользователя» на каждом узле с меткой «User» Чтобы создать уникальный узел, нужно иметь что-то соотносить по созданию. На данный момент нет такого понятия, как

create unique (n:User {username:"tsartsaris"}) 

Но вы можете использовать

CREATE UNIQUE (b)-[:ISUSER]->(m:User {username:"tsartsaris"}) 

Это уникальное творение будет искать м с меткой: Пользователь и имя пользователя: tsartsaris, если он не существует, то он создаст его. Если вы снова запустите код, он вернет существующий узел и не создаст новый. Если вы используете 2.0 м2, вы можете использовать слияние как метод создания уникального узла.

merge (n:User {username:"tsartsaris"}) 
    RETURN n 

слияние будет искать матч в вашем графике, если он считает, что вернет его, в противном случае будет создан узел и вернуть его.

+0

является просто произвольным стартовым узлом? – MonkeyBonkey

+0

b - это тот самый узел, который вы хотите быть в зависимости от вашей установки, но он должен быть одинаковым для каждого раза, когда вы хотите создать уникальный: Пользователь. – SotirisTsartsaris

1

Индексирование в neo4j 2.0 будет в основном скрыто. Индексы могут быть созданы для свойства label +, чтобы узлы с этой меткой и свойством индексировались в этом индексе.

Однако до сих пор нет ограничений (например, уникальности), но оно находится в разработке и не поддерживает f.ex. нечувствительность к регистру. Подробнее см. Здесь http://docs.neo4j.org/chunked/preview/query-schema-index.html

Смежные вопросы