GraphGists

简介

作为入门,我使用了全球国际航班的开源数据。数据非常庞大且复杂,但当我查看数据及其图模型时,我受到了启发。虽然我做了很多更改才能将其转换为这种形式,现在它变得完全新颖且可用。该图显示,近年来,所有国家和城市之间的航班相互连接,但另一方面,全球的航空公司和航班数量有所增加。了解航空公司和航班之间差异的方法是观察不同国家的人们出于工作或会议等目的前往不同国家和城市旅行的方式。

利用可用数据,我创建了如下所示的图模型。每个航班和机场都由一个节点表示。节点上的标签显示了相同的信息。此示例仅包含航空公司国家和城市之间的航班,因此我可以看到很多连接。

本练习的目的是学习如何使用图数据库Neo4j以及一些技术工具和概念,方法是使用Neo4j国家和城市以及航空公司和航班。这些是旅行中我需要解决的具体问题。

ydftT5g

设置

检索所有国家。

MATCH (country:Country) return country.countryName ORDER BY country.countryName

检索所有城市。

MATCH (city:City) return city.cityName ORDER BY city.cityName

检索所有机场。

MATCH (airport:Airport) return airport.airportName ORDER BY airport.airportName

检索所有航空公司。

MATCH (airline:Airline) return airline.airlineName ORDER BY airline.airlineName

最繁忙的两个机场。

MATCH (airport:Airport)<-[r]-(f:Flight)  WITH airport, count(r) AS flight_count order by flight_count desc  return  airport.airportName  , flight_count limit 2

最繁忙的两个城市(航班最多)。

MATCH (city1:City)<-[:IS_IN]- (airport1:Airport)<-[r]-(flight1:Flight) WITH city1, count(DISTINCT flight1) as flight_count order by flight_count desc return city1.cityName,flight_count limit 2

航班数量最多的两家航空公司。

MATCH (airline:Airline)<-[r]-(f:Flight)  WITH airline, count(r) AS flight_count order by flight_count desc  return airline.airlineName, flight_count limit 2

机场数量最多的两个城市。

MATCH (city:City)<-[r]-(airport:Airport)  WITH city, count(r) AS airport_count order by airport_count desc  return city.cityName, airport_count limit 2

航空公司数量最多的两个国家。

MATCH (country:Country )<-[:BELONGS_TO]-(airline:Airline)  WITH country,count(DISTINCT airline) as airline_count order by airline_count desc  return  country.countryName,airline_count limit 2

结论

结论:本练习为我们提供了从A点到B点最佳路线的方式,并告知是否有替代路线或捷径、长途路线以及中间的多个停靠点,这有助于根据个人或旅行者的需求制定计划并满足其旅行需求,还可以告知哪条路线最快或最长。此解决方案帮助用户能够完成任何他们想要做的事情。