У меня есть диаграмма, состоящая из различных доказательств. Я хочу на лету агрегировать оценку достоверности между свидетельствами между двумя узлами и вернуть новую тройку, например node1-[aggregate_score {agg_confidence:100}]->node2
.
Мой текущий запрос:
MATCH (n1{name:"test_node1"})-[:IS_SRC_OF_EVIDENCE]->(test_ev:TestEvidence {theme:"test_rel"})<-[:IS_TRG_OF_EVIDENCE]-(n2{name:"test_node2"})
WITH avg(test_ev.confidence) as agg_confidence, n1, n2
CREATE (n1)-[statement:TEST_REL{confidence:agg_confidence}]->(n2)
RETURN (n1)-[statement]->(n2)
Насколько я понимаю, нет способа вернуть временные отношения - могут быть возвращены только те вещи, которые существуют. Поэтому следующим лучшим вариантом было бы иметь что-то вроде подграфа, в котором я мог бы временно сохранить эти новые отношения; действует как своего рода кеш, который я мог бы регулярно очищать.
Прежде чем кто-то заявит, что я должен явно создать эту совокупную связь для всех наборов узлов, это не вариант, поскольку есть несколько полей метаданных, которые будут отфильтрованы на которых нет в списке - date_published et c. что в таком случае повлияет на совокупный балл.
Есть какие-либо рекомендации или проработал ли кто-нибудь аналогичный вариант использования?