2015-07-22 3 views
0

Мне нужен запрос для извлечения всех свойств отношения, которые не являются пустыми, например.Как создать индекс для свойства отношения

MATCH()-[r:TYPE]-() WHERE r.attr <> "" RETURN r.attr 

Я предположил бы, что CREATE INDEX ON :TYPE(attr) создает индекс на узле с шильдике, а не на свойства отношения?

Или нет необходимости создавать индекс для свойства отношения?

Я использую neo4j 2.2.3.

ответ

2

Индексы по отношениям возможны только с использованием manual indexes.

Бевер, создающий те, которые я настоятельно рекомендую переосмыслить вашу модель графика. Все, являющиеся сущностью или сложным типом значения, должны быть смоделированы как узлы. Взаимодействие между вещами в вашем мире моделируется как отношения. Обычно отношения используют параметры веса или метаданные для их свойств, но редко реальные атрибуты.

Поскольку ваши запросы, как правило, начинаются с «чего-то» (например, aka a node), вам, скорее всего, не нужны индексы отношений. Индексы должны использоваться только для определения начальных точек для ваших обходов.

+0

Что можно сказать о сроках действия по отношениям? Не могли бы вы также аргументировать модель «отношения» как узла в тех случаях, когда эти даты действительности должны использоваться для ограничения результатов запроса? См. Http://stackoverflow.com/questions/41300518/neo4j-cypher-query-to-find-nodes-that-are-not-connected-too-slow –

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