У меня есть модель данных, которую я хочу грубо моделировать после статьи, опубликованной в этом Graphgist.Neo4j - Производительность поиска по свойствам края в предложении WHERE
Мне любопытно, насколько я могу ожидать от предложения WHERE в том случае, если заданный набор из двух узлов имеет большое количество отношений между ними с параметрами 'from' и 'to', определенными на каждом край. Когда вы делаете запрос матча, как это, где вы, скажем, 100 ПРОДАЕТ отношения, как делает Neo4j обрабатывать производительность фильтрации вниз края, чтобы только один (s), что материя на основе критериев, где:
MATCH (s:Shop{shop_id:1})-[r1:SELLS]->(p:Product)
WHERE (r1.from <= 1391558400000 AND r1.to > 1391558400000)
MATCH (p)-[r2:STATE]->(ps:ProductState)
WHERE (r2.from <= 1391558400000 AND r2.to > 1391558400000)
RETURN p.product_id AS productId,
ps.name AS product,
ps.price AS price
ORDER BY price DESC
I не нашли способ индексирования свойств на границе напрямую, поэтому я предполагаю, что оптимизатор запросов может позаботиться о чем-то подобном или просто буквально пересекает массив ребер и находит тот, который соответствует.
Это имеет большой смысл. Благодарим вас за ответ, и мы продолжим так запланировано. Свойство - это временная метка, поэтому, как правило, не имеет смысла индексировать, но я задавался вопросом, будет ли какая-либо значительная польза для этого на обход, но похоже, что ничего не получится. Цените помощь! – Micah