Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ͼÊý¾Ý¿âʵ¼ùϵÁÐ1 --Neo4J¼ò½é¡¢°²×°¼°¿Õ¼äÊý¾Ý´æ´¢
 
×÷ÕߣºÐ¡Â¥ÑÌÓêäìÏæ
  2953  次浏览      47
2020-8-3 
 
±à¼­ÍƼö:

±¾ÎÄÖ÷ÒªNeo4jµÄ¸ÅÄîºÍ°²×°£¬Í¬Ê±°üÀ¨½éÉÜÁËGitºÍMavenÁ½¸ö¹¤¾ß£¬Neo4j SpatialÏîÄ¿ÒÔ¼°¿Õ¼äÊý¾Ý(ʸÁ¿)µÄ´æ´¢¡£
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

Neo4J¼ò½éÓë°²×°

1.¼ò½é

¡°Neo4jÊÇÒ»¸ö¸ßÐÔÄܵģ¬·Ç¹ØÏµµÄ£¬¾ßÓÐÍêÈ«ÊÂÎñÌØÐÔµÄ,³°ôµÄͼÊý¾Ý¿â¡£¡± neo4jÔÚ´¦Àí¸´ÔÓµÄÍøÂçÊý¾Ýʱºò£¬¾ßÓкܺõÄÐÔÄܱíÏÖ[1]£¬ÊÊÓÃÓÚÉç½»ÍøÂ磬¶¯Ì¬ÍøÂçµÈ³¡¾°¡£Ëü»ùÓÚjavaÓïÑÔʵÏÖ£¬ÓÐÁ½¸ö·Ö·¢°æ±¾£¬ÉçÇø°æ(community version)ÒÔGPLv3µÄÐí¿ÉÔÚGithubÉÏ¿ªÔ´;ÆóÒµ°æ£¬Í¬Ê±×ñÑ­AGPLv3ºÍÉÌÒµÐí¿É£¬ËüÔÚÉçÇø°æ»ù´¡ÉÏÔö¼ÓÁ˰üÀ¨¸ß¿ÉÓÃÐÔ(High Availability)£¬È«ÌìºîÖ§³ÖµÈÌØÐÔ¡£Neo4jµÄ¿ª·¢·Ç³£»îÔ¾£¬Î§ÈÆËüÓзdz£¶àµÄÏîÄ¿£¬°üÀ¨ REST API °ó¶¨£¨¸÷ÖÖÓïÑÔʵÏÖÁÐ±í£©£¬¿Õ¼äÊý¾Ý¿âÖ§³Ö£¨Ô´ÂëµØÖ·£©µÈ¡£

ÓÉÓÚneo4j°æ±¾Éý¼¶Æµ·±£¬ÎªÁ˼°Ê±»ñȡеÄÈí¼þÌØÐÔ£¬ÎÒÃÇʹÓÃGitÀ´¹ÜÀí£¬¸üдúÂë¡£GitÊÇÒ»¸ö»ùÓÚCÓïÑÔʵÏֵķֲ¼Ê½°æ±¾¿ØÖÆÏµÍ³ÓëÔ´Âë¹ÜÀíϵͳ£¬Óësvn²»Í¬µÄÊÇ£¬Ëü²¢Ã»ÓÐÖÐÐÄ·þÎñÆ÷Õâ¸ö¸ÅÄ¶øÊÇÿһ·ÝµÄ±¾µØ°æ±¾¶¼»á°üº¬Ô´ÂëµÄÍêÕûÀúÊ·¼Ç¼[2,3]¡£GitµÄÎļþÖ÷Òª´¦ÓÚÈýÖÖ״̬:staged,modified,committed¡£ËüµÄ²Ù×÷Ö÷Òª°üÀ¨£ºpull,fetch,push,commitµÈ¡£ÕâÑùµÄ»úÖÆµ¼ÖÂGit״̬ºÍ²Ù×÷ÈçͼһËùʾ£º

ͼ1 Git Êý¾ÝÁ÷¼òµ¥½á¹¹Í¼

¸ü¶àµÄ¹ØÓÚGitµÄ½Ì³ÌÇë²éÔIJο¼ÎÄÏ×[3,4]¡£

MavenÊÇÒ»¸öÓÉApacheÈí¼þ»ù½ð»á¿ªÔ´javaÏîÄ¿¹¹½¨£¬ÒÀÀµ¹ÜÀí£¬ÏîÄ¿ÐÅÏ¢¹ÜÀíµÄ¹¤¾ß[6]¡£»ùÓÚÏîÄ¿¶ÔÏóÄ£ÐÍ(POM)µÄ¸ÅÄî,Maven¸ù¾ÝÖÐÐÄÐÅÏ¢¿ÉÒÔ¹ÜÀíÏîÄ¿µÄ¹¹½¨£¬»ã±¨ºÍÎĵµ¹¤×÷¡£ËüÄܹ»×Ô¶¯»¯¹¹½¨¹ý³Ì£¬´ÓÇåÀí£¬±àÒ룬²âÊÔµ½Éú³É±¨¸æ£¬ÔÙµ½´ò°üºÍ²¿Êð¡£Maven³éÏóÁËÏîÄ¿ÍêÕûµÄ¹¹½¨ÉúÃüÖÜÆÚÄ£ÐÍ£¬Í¬Ê±±ê×¼»¯Á˹¹½¨¹ý³Ì£¬´Ù½øÏîÄ¿ÍŶӱê×¼»¯£¬»¹ÌṩÁËÒ»ÖµIJÙ×÷½Ó¿Ú[7]¡£MavenÏîÄ¿ºËÐÄÊÇPOM.xml£¬Ëü¶¨ÒåÁËÏîÄ¿µÄ»ù±¾ÐÅÏ¢£¬ÓÃÓÚÃèÊöÏîÄ¿ÈçºÎ¹¹½¨£¬ÉêÃ÷ÏîÄ¿ÒÀÀµµÈ¡£ÑùÀýPOM´úÂëÈçÏÂËùʾ£º

Õâ¸öÏîÄ¿µÄPOM×îÖØÒªµÄÊǵÚÒ»¶ÎgroupId,artifactId ,versionÈý¸öÔªËØ£¬ËüÃǶ¨ÒåÁËÒ»¸öÏîÄ¿µÄ»ù±¾×ø±ê¡£groupId¶¨ÒåÏîÄ¿µÄ¹éÊô×éÖ¯£¬artifactId¶¨ÒåÁ˵±Ç°ÏîÄ¿ÔÚ¹éÊôÖеÄΨһID ,vesrion¾ÍÊÇÏîÄ¿µÄ°æ±¾ºÅ¡£MavenÖ÷ÒªµÄÃüÁî°üÀ¨mvn clean complie test package install µÈ¡£¸ü¶àMavenµÄÄÚÈÝÇë²éÔIJο¼ÎÄÏ×[7]¡£

2.°²×°

2.1 Git °²×°

GitµÄ°²×°·Ç³£¼òµ¥£¬´ó¶àÊýµÄLinux·¢Ðа汾µÄÔ´Öж¼´ò°üºÃ¡£ÒÔUbuntu ΪÀý(½ö²âÊÔOneiric£¬Precise)£¬Ö»ÐèÒªÊäÈëÈçÏÂÃüÁî¼´¿É°²×°¡£

sudo apt-get install git

 

WindowºÍMacOS°æ±¾¿ÉÒÔÔÚgithubÉÏÏÂÔØ£¬²¢°´ÕÕÉÏÃæÖ¸Äϰ²×°¡£

2.2 Maven °²×°

ͬÑùµÄUbuntu£¨ÎÒ×ϵͳ£©Ï£¬°²×°Maven3·Ç³£¼òµ¥£¬ÊäÈëÈçÏÂÃüÁî:

sudo apt-get maven

2.3 Neo4j °²×°

°²×°ºÃÒÔÉÏÁ½Õߺó£¬ÎÒÃÇÖ±½Ó´ÓgithubµÄÔ´Â룬²¢ÓÃmavenÀ´°²×°neo4j£¬ÃüÁîÈçÏ£º

mkdir neo4j
cd ./neo4j
git clone https://github.com/neo4j/community.git
mvn clean install

 

Èç´Ë£¬neo4j¼´°²×°³É¹¦¡£Èç¹ûÐèÒªbuild²»Í¬µÄ°æ±¾¿ÉÒÔ×ñÕղο¼ÎÄÏ×5ReadmeµÄָʾÀ´ÊµÏÖ¡£

Neo4J¿Õ¼äÊý¾Ý´æ´¢

1.Neo4j Spatial ¼ò½é

1.1Neo4j Spatial¸ÅÄî

Neo4j SpatialÏîÄ¿ÊÇͼÊý¾Ý¿âNeo4jµÄÒ»¸ö²å¼þ£¬Ëüͨ¹ý½«¿Õ¼äÊý¾ÝÓ³É䵽ͼģÐÍ(graph model)£¬Ëü½«¶ÔÏóºÍ¹ØÏµµ±×÷¶¥µãºÍ±ß´æ´¢ÔÚͼģÐÍÖС£Òò¶øÊ¹µÃNeo4j¾ßÓпռäÊý¾ÝµÄµ¼È룬´æ´¢£¬²éѯµÈ¹¦ÄÜ[8]¡£Neo4j SpatialÖ§³ÖµÄµØÀíÒªËØ×ñÑ­OpenGISµÄ¹æ·¶[9]£¬°üÀ¨µã(point),Ïß¶Î(line-string),Ãæ(polygon),¶àµã(multipoint),¶àÏß¶Î(multi-linestring)µÈ¼òµ¥ÒªËØ¡£Neo4j SpatialʹÓÃRÊ÷×÷Ϊ¿Õ¼äË÷Òý£¬Ö÷ÒªÊǼ¯³ÉÁËLucene µÄË÷Òý¿â£¬Ö§³ÖµÄ¿Õ¼ä²éѯ°üÀ¨¸²¸Ç(cover),±»¸²¸Ç£¨cover by),°üº¬£¨contian),Ïཻ(intersect)µÈ¡£Ò»°ã¶øÑÔ£¬RÊ÷»á½«Ò¶×Ó½áµã£¨COUNT,LEVEL,<OIi,MBRi>£©Éϼ¸ºÎÒªËØ·Ö×é²¢ÓÃËüÃǵÄÊý¾Ý¾ØÐÎÀ´±íʾ£¬Ïà±ÈPostGISËùʹÓõÄÓÅ»¯¹ýGisT[13]Ë÷ÒýÒªµÍЧ£¬»áʹNeo4jÔÚ·¶Î§²éѯÉÏЧÂÊÓÐËù²»¼°PostGIS£¬µ«Ëü¶ÔÊʺÏͼģÐ͵ÄÊý¾Ý£¨ÈçÍøÂçÊý¾Ý£©²Ù×÷ЧÂʷdz£¸ß[14]¡£×ÛÉÏËùÊö£¬Neo4jÔÚ·ûºÏͼÊý¾ÝÄ£Ð͵ķÖÎöÖÐÈçÁÚ½üËÑË÷£¬Â·¾¶·ÖÎöµÈÕâÐ©ÌØ¶¨ÀàÐ͵ÄÓ¦ÓÃÓзdz£´óµÄÓÅÊÆ¡£

1.2 Neo4j SpatialÌØÐÔ

Neo4j SpatialµÄ²¿·ÖºËÐÄÌØÐÔ°üÀ¨

Ö§³ÖEsri Shapefile¸ñʽ£¬OSM(OpenStreetMap)¸ñʽ£¨Ö»Ö§³Ö.osm¸ñʽ£©£¨²¹³ä£ºOpen Street MapĿǰÖð²½ÊÊÓÃPBFÌæ´úOSM£©

Ö§³ÖËùÓÐͨÓõļ¸ºÎÒªËØ

ÔÚ¿Õ¼ä²éѯµÄʱºòÖ§³ÖÍØÆË²Ù×÷

ÔÊÐíÈκÎͼÊý¾Ý¶¼ÊµÏÖ¿Õ¼ä²Ù×÷¹¦ÄÜ

Äܹ»½«µ¥Ò»Í¼²ã»òÕßÊý¾Ý¼¯²ð·Ö³É¶à¸ö×Óͼ²ã

2.Neo4j Spatial°²×°

2.1 EGit°²×°

EGitÊÇEclipseÍŶÓÌṩµÄGit²å¼þ£¬Ëü»ùÓÚJGit(GitµÄjavaʵÏÖ°æ±¾£©ÊµÏֵģ¬ÔÊÐíÔÚEclipseÖÐʵÏÖGitµÄ¸÷ÖÖÃüÁî[15]¡£ËüµÄ°²×°ºÍÆäËû²å¼þÒ»Ñù£¬ÔÚeclipseÖÐÑ¡ÔñHelp->Install New Software£¬¼ÓÈëUpdate site »áÈçͼ1Ëùʾ£º

ͼ1 °²×°EGit

°²×°³É¹¦µÄ»°£¬ÐèÒªÖØÆôEclipse¡£File ->New -> Other£¬»á¿´µ½GitµÄ×ÖÑù¡£

2.2 M2eclipse°²×°

M2eclipseÊÇMavenµÄEclipse²å¼þ£¬ÏîÄ¿µÄÄ¿±êÊÇÌṩΪEclipse ÌṩһÁ÷µÄMavenÖ§³Ö£¬Ê¹ËüÄܹ»¸ü·½±ãµØ±à¼­POMÎļþ£¬¹¹½¨ÏîÄ¿µÈ[16]¡£Í¬Ñù¿ÉÒÔͨ¹ýUpdate Site °²×°£º¡£Èçͼ2Ëùʾ£º

ͼ2 °²×°M2Eclipse

°²×°³É¹¦µÄ»°£¬ÐèÒªÖØÆôEclipse¡£File ->New -> Other£¬»á¿´µ½MavenµÄ×ÖÑù¡£

2.3Neo4j Spatial°²×°

Neo4j SpatialÔ´Âë¿ÉÒÔÔÚGithubÏÂÔØ£¬ÎÒÃÇͨ¹ýÒÔÉϰ²×°µÄÁ½¸ö²å¼þ£¬À´¹¹½¨ºÍ°²×°ÎÒÃǵÄNeo4j SpatialÏîÄ¿¡£Ê×ÏÈÔÚeclipseÖÐFileÖе¼ÈëGitÏîÄ¿£¬

File -> Import -> Git -> Project from Git.Èç¹û±¾µØÒѾ­´æÔÚGit¿â£¬¿ÉÒÔÑ¡ÔñLocal.ÎÒÃÇÔ¶³ÌÏÂÔØSpatial,Ñ¡ÔñURI£¬Èçͼ3Ëùʾ¡£

ͼ3 Ñ¡ÔñÔ¶³Ì¿â

ÊäÈëNeo4j Spatial URI£¬È»ºóNext,Èçͼ-4Ëùʾ£º

ͼ4 ÊäÈëURI

EGit»á×Ô¶¯Fetch»ØËùÓеÄÔ´Â룬ÎÒÃÇ¿ÉÒÔ°´ÕÕ×Ô¼ºÐèҪѡÔñÌØ¶¨°æ±¾£¬È»ºóNext¡£Èçͼ5Ëùʾ£º

ͼ5 Ñ¡ÔñÔ´Âë°æ±¾

È»ºó¿ÉÒÔÒ»Ö±Next£¬Ö±ÖÁÑ¡Ôñµ¼ÈëµÄÏîÄ¿ÀàÐÍ£¬Ñ¡ÔñImport as general projcet.Èçͼ6 Ëùʾ£º

ͼ6 µ¼ÈëÏîÄ¿

ÔÙNextÈ»ºóµãfinish Íê³Éneo4j spatial µÄµ¼³ö¡£´Ëʱ£¬»¹ÐèÒª½«¸ÃÏîĿת»¯³ÉMaven Project £¬Ñ¡ÖÐÏîÄ¿£¬ÓÒ¼ü£ºConfigure ->Convert to Maven Project.×îºóÎÒÃǵõ½ÁËÒ»¸ögit¹ÜÀíϵÄmavenÏîÄ¿¡£Ê¹ÓÃÈçÏÂÃüÁîÀ´°²×°Neo4j Spatial¡£

mvn clean install

ÔÚeclipse²Ù×÷ÊÇ Run as ->5. Maven Build ->ÊäÈë¹¹½¨Ä¿±ê¡£ Èçͼ7Ëùʾ£º

ͼ7 ¹¹½¨Neo4j Spatial ÏîÄ¿

M2eclipse»á×Ô¶¯¹¹½¨¹¤³Ì¡£Èç¹û°²×°Ê§°ÜµÄ»°£¬¿ÉÒÔʹÓÃÈçÏÂÃüÁîÌø¹ýµ¥Ôª²âÊÔ

mvn clean install -DskipTests

×îºóeclipseµÄconsole»á±¨³öbuild success¡£

3.Neo4j Spatial ¿Õ¼äÊý¾Ý¶ÁÈ¡

3.1µØÀíͼ²ãÓë±àÂë

Spatial ¿âÖÐÊ×ÏÈÐèÒª¶¨Òåͼ²ãÖм¸ºÎÒªËØ£¬¿É¹©²éѯµÄË÷Òý£¬Í¬Ê±Í¼²ãÊÇ·ñ¿É±à¼­ £¬Æä´ÎÊÇÈ·¶¨¼¸ºÎ±àÂë½Ó¿Ú¡£SpatialÀà¿âÌṩµÄĬÈÏͼ²ãÊDZê׼ͼ²ã£¬Ê¹ÓÃWKBGeometryEncoder£¬½«ËùÓеÄÒªËØÒÔ×Ö½ÚÊý×éµÄÐÎʽÀ´´æ´¢¡£µØÀíÊý¾ÝÖÐʵÌåµÄÊôÐԻᵱ×÷ͼÊý¾ÝÄ£ÐÍÖж¥µãµÄÊôÐÔÀ´´æ´¢¡£OSMLayer ÊÇÖ§³ÖOpen Street Map¸ñʽµÄÌØÊâͼ²ã£¬neo4jʹÓõ¥¸öÍêȫͼ[17]À´´æ´¢¸Ãͼ²ã¡£Í¬Ê± OMSLayer¼Ì³Ð¶¯Ì¬Í¼²ã£¬ÔÊÐí°üº¬ÈÎÒâ¸ö×Óͼ²ã¡£

3.2µ¼Èëshapefile

µ¼Èëshapefile´ó¸Å¹ý³ÌÊÇ1.Éú´æNeo4jÊý¾Ý¿â£¨µ÷ÓÃÒÑÓУ© 2.ʵÀý»¯£¬²¢µ÷ÓÃShapefileImporter 3.¹Ø±ÕÊý¾Ý¿â ʵÀý´úÂëÈçÏÂËùʾ£º

3.3µ¼ÈëOSM

µ¼ÈëOSMµÄ¹ý³ÌºÍµ¼Èëshapefile²îÒì²»´ó£¬¾É°æNeo4j Spatial ÌṩÁËÅúÁ¿¶ÁÈëµÄ½Ó¿ÚBatchInserter£¬¿ÉÒÔ¼Ó¿ì´óÎļþµÄµ¼Èë¡£¾ßÌåJavaDocÇë²ÎÔÄ´ò°üºóµÄÎĵµ¡£

 

   
2953 ´Îä¯ÀÀ       47
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
InfluxDB¸ÅÄîºÍ»ù±¾²Ù×÷
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾ÝдÈë
Éî¶ÈÂþ̸Êý¾Ýϵͳ¼Ü¹¹¡ª¡ªLambda architecture
Lambda¼Ü¹¹Êµ¼ù
InfluxDB TSM´æ´¢ÒýÇæÖ®Êý¾Ý¶ÁÈ¡
×îпγÌ
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯¡¢¼Ü¹¹Éè¼ÆºÍÔËÐÐά»¤
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
NoSQLÊý¾Ý¿â£¨Ô­Àí¡¢Ó¦Óá¢×î¼Ñʵ¼ù£©
ÆóÒµ¼¶Hadoop´óÊý¾Ý´¦Àí×î¼Ñʵ¼ù
OracleÊý¾Ý¿âÐÔÄÜÓÅ»¯×î¼Ñʵ¼ù
³É¹¦°¸Àý
ij½ðÈÚ¹«Ë¾ Mysql¼¯ÈºÓëÐÔÄÜÓÅ»¯
±±¾© ²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
ÖªÃûijÐÅϢͨÐŹ«Ë¾ NoSQL»º´æÊý¾Ý¿â¼¼Êõ
±±¾© oracleÊý¾Ý¿âSQLÓÅ»¯
ÖйúÒÆ¶¯ IaaSÔÆÆ½Ì¨-Ö÷Á÷Êý¾Ý¿â¼°´æ´¢¼¼Êõ