Я хочу протестировать производительность простого анализа графов среди GraphDBes с помощью cypher.
Я сослался на этот сайт и воспроизвел пример в Neo4j, Agensgraph, SAP HANA и Redis.
но шифровальный запрос (см. ниже) работает не в Agensgraph, а в SAP HANA.
MATCH (p1:Person {name:'Michael Sherman'})-[r1:RATED]->(m:Movie)<-[r2:RATED]-(p2:Person {name:'Michael Hunger'}) RETURN m.name AS Movie, r1.rating AS `M. Sherman's Rating`, r2.rating AS `M. Hunger's Rating`
Я думаю, что вторая стрелка не работает в Agensgraph и SAP HANA.
Как отредактировать этот запрос для работы в Agensgraph и SAP HANA?
Я уже сталкивался с подобной проблемой, вызванной различием грамматики языка запросов.
Вот мой запрос, чтобы выяснить сходство в AgesnGraph. Вы сможете вычислить косинусное сходство с небольшими изменениями.
MATCH (u1:users {userid:'Toby'})-[r1:hasrated]->(m:movies)<-[r2:hasrated]-(u2:users)
WITH distinct u1.userid as u1name, u2.userid as u2name,
SUM(r1.rating::float*r2.rating::float) as xyDotProduct,
SQRT(SUM(r1.rating::float^2)) as xLength,
SQRT(SUM(r2.rating::float^2)) as yLength
RETURN u1name, u2name, xyDotProduct::float/(xLength::float*yLength::float) as similarity;