turash/concept/23_example_query_in_cypher_neo4j.md
Damir Mukimov 4a2fda96cd
Initial commit: Repository setup with .gitignore, golangci-lint v2.6.0, and code quality checks
- Initialize git repository
- Add comprehensive .gitignore for Go projects
- Install golangci-lint v2.6.0 (latest v2) globally
- Configure .golangci.yml with appropriate linters and formatters
- Fix all formatting issues (gofmt)
- Fix all errcheck issues (unchecked errors)
- Adjust complexity threshold for validation functions
- All checks passing: build, test, vet, lint
2025-11-01 07:36:22 +01:00

836 B

21. Example Query in Cypher (Neo4j)

MATCH (a:ResourceFlow {type:'heat', direction:'output'})-[:LOCATED_AT]->(srcSite:Site),
      (b:ResourceFlow {type:'heat', direction:'input'})-[:LOCATED_AT]->(dstSite:Site),
      (srcSite)<-[:OPERATES_AT]-(srcBiz:Business),
      (dstSite)<-[:OPERATES_AT]-(dstBiz:Business)
WHERE distance(srcSite.location, dstSite.location) < 5000
  AND abs(a.quality.temperature_celsius - b.quality.temperature_celsius) < 10
  AND overlap(a.time_profile.availability, b.time_profile.availability) > 0.6
WITH srcBiz, dstBiz, srcSite, dstSite, a, b,
     (b.economic_data.cost_in - a.economic_data.cost_out - 0.0005*distance(srcSite.location, dstSite.location)) AS savings
WHERE savings > 0
RETURN srcBiz.name, dstBiz.name, srcSite.name, dstSite.name, savings
ORDER BY savings DESC LIMIT 20;