Сопоставление узлов с общими узлами с помощью отношения - Neo4j Cypher

У меня есть количество узлов пользователя и узлов навыков. Отношения между навыками и пользователями.

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/xyz.csv" AS row FIELDTERMINATOR '|'
WITH row
LIMIT 15

CREATE (u:User {company: row.company, salary: row.salary_float,         designation: row.designation, experience: row.experience_float})

FOREACH (s IN split(row.tag_skill, "@") |
MERGE (skill:SKILL {name: s})
ON CREATE SET skill.name = s
CREATE (u)-[:KNOWS]->(skill))

Мне также нужна связь между пользовательскими узлами, где, если пользователь A подключен к номеру для узлов Skill [s1, s2, s3, s4, s5, s6], и если пользователь B подключен к [s1, s3, s4, s6]

Пользователь A и пользователь B находятся в одинаковых отношениях, если хотя бы 50% их навыков совпадают.

в этом примере A находится в связи с B, так как они имеют общие s1, s3, s4, s6, что соответствует более чем 50%

Не могу понять этот запрос шифра.

Ответы на вопрос(1)

Ваш ответ на вопрос