용어 노드로 태그가 지정된 콘텐츠 노드가있는 그래프에서 작업하고 있습니다. 다른 (검색) 용어 노드와 동일한 콘텐츠 노드에 연결된 용어 노드를 반환하는 쿼리를 가져 오려고합니다.동일한 중개자에 연결된 노드 매치 - cypher/neo4j
(matched:term)--(contentNode:content)--(search:term)
아니라 어떤 이상에 연결된 검색어의 모든을 가지고 콘텐츠에 연결되어 내가 일치하는 용어 노드를 반환하는 데 문제. 여기
내 현재 쿼리의 단순화 된 버전입니다 : 여기query = [
'MATCH (matched:term)<-[:TAGGED_WITH]-(contentNode:content)-[:TAGGED_WITH]->(searchTerms:term) ',
'WHERE searchTerms.UUID IN {searchTerms} ',
'RETURN DISTINCT matched.name AS name, matched.UUID AS UUID, matched.contentConnections AS connections ',
'ORDER BY connections DESC LIMIT 10'
].join('\n');
연습의 예이다 - 용어의 최고 그룹 내 쿼리에 의해 일치하는 용어입니다, 바닥은 사용되는 용어입니다 검색 :
용어 '천문학'반환되지해야하지만, '이미지'로 태그 된 어떤 내용도 '천문학'태그이기 때문이다. 결과
그래프 표현 : 내용 (회색 노드)의 한 조각이 두 용어를 일치
주 (이것은 노드 ID가 표시되는 내용이기 때문에 얘기하기 어렵다). 이 검색은 어떤 조건을 양보해서는 안
: 무엇 예상됩니다 만 "이미지"와 "기관"
또 다른 예는 모두 태그 된 콘텐츠에 연결되어있는 용어를 반환하는 것입니다 그러나 '기관지'와 '천문학'으로 태그 된 콘텐츠가 없기 때문에 태그 된 용어를 둘 중 하나로 반환합니다.
그래프 표현 :
나는 내 질문에 분명했습니다 바랍니다. count()
과 함께 작업하여 결과를 그룹화했지만 제대로 작동 시키려고 애 쓰고 있습니다.
도움을 주시면 감사하겠습니다.
편집은 :
은은 쿼리 : 선택한 다음 두 조건을
query = [
'MATCH (contentNode:content)-[:TAGGED_WITH]->(searchTerms:term) ',
'WITH contentNode, COUNT(contentNode) as countContent, searchTerms ',
'WHERE searchTerms.UUID IN {searchTerms} AND countContent = {searchTermsCount} ',
'MATCH (typeNode:termType)<-[:IS_TYPE]-(matched:term)<-[:TAGGED_WITH]-contentNode, ',
'matched-[:HAS_LANGUAGE {languageCode: {language} }]-(termMeta:termMeta) ',
'WHERE NOT matched.UUID IN {ignoreTerms}',
'RETURN DISTINCT termMeta.name AS name, matched.UUID AS UUID, matched.contentConnections AS connections ',
'ORDER BY connections DESC LIMIT 10'
].join('\n');
이 쿼리는 내용 ('진화', '개미'의 그 조각 하나에 태그 용어를 반환 할 것으로 예상된다, 등), 그러나 위의 쿼리를 사용하면 용어가 반환되지 않습니다.
감사합니다,하지만이 쿼리는 예상대로 잘 작동하지 않습니다. 전체 복잡성에서 다시 추가 할 때 나는 그것을 깨뜨릴 수있었습니다.또한 대답은 포함 된 용어를 기반으로 필터링 할 수 있도록하기 위해 with 절에 searhTerm을 포함해야한다는 오류를 생성합니다. 문제를 설명하기 위해 내 질문에 다른 이미지를 추가했습니다. – bornytm
올바르게 작동하는 쿼리에 대한 응답을 수정했습니다. WITH 절 앞에 나타나야하는 검색어에 대해 WHERE 절이 사용되었습니다. 또한 별개의 노드를 반환하는 것이 바람직합니다. 도와 주셔서 다시 한번 감사드립니다 -이 두 번째 피클은 내가 도왔을 때 도움이되었습니다. – bornytm