2016-09-28 2 views
0

Я использую Neo4j 3.0.5.Neo4j: Ускорение отношений Соответствие по критерию неравенства

Мой запрос выглядит следующим образом:

MATCH (cd:ConnectionDay)-[c:Connection]->() 
WHERE id(cd)= { id } AND c.departure <= { departure } 
RETURN c 

В моем графике, число Connection отношений очень высок, и я ищу способ, чтобы ускорить поиск. Есть ли способ создать индекс для имущества отправления?

В любом случае я использую встроенный Java API, поэтому решения, которые не используют Cypher, тоже в порядке.

+0

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

+0

@stdob Как вы думаете, накладные расходы на один дополнительный узел + одно дополнительное соотношение стоили бы этого? –

+0

Я думаю, что это не проблема. Все в духе теории графов. –

ответ

0

Кроме того: не рекомендуется использовать собственные идентификаторы neo4j для поиска узлов, так как после удаления узла его собственный идентификатор может быть повторно использован. Безопаснее добавлять собственное свойство для хранения идентификатора, который, как вы знаете, уникален.

В настоящее время Neo4j не поддерживает индексирование свойств отношений. Если вы хотите использовать индексирование, вы можете изменить свою модель данных, чтобы «подтвердить» свои отношения Connection как узлы. Например, ваша новая модель данных будет выглядеть примерно так:

(cd:ConnectionDay)-[:CONNECTS_TO]->(c:Connection {departure: 123})-[]->() 
Смежные вопросы