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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ͼÐÎÊý¾Ý¿âNeo4j»ù±¾Á˽â
 
  1853  次浏览      27
2019-10-9
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcnblogs£¬±¾ÎÄÖ÷Òª½éÉÜÁËÊôÐÔͼµÄ×é³É²¿·Ö£¬ÊôÐÔͼģÐ͵Ļù±¾¸ÅÄͼÐÎÖбéÀúµÄ·¾¶£¬Neo4jµÄģʽµÈ£¬Ï£ÍûÄܶÔÄúÓÐËù°ïÖú¡£

ÔÚÉîÈëѧϰͼÐÎÊý¾Ý¿â֮ǰ£¬Ê×ÏÈÀí½âÊôÐÔͼµÄ»ù±¾¸ÅÄî¡£Ò»¸öÊôÐÔͼÊÇÓɶ¥µã£¨Vertex£©£¬±ß£¨Edge£©£¬±êÇ©£¨Lable£©£¬¹ØÏµÀàÐͺÍÊôÐÔ£¨Property£©×é³ÉµÄÓÐÏòͼ¡£¶¥µãÒ²³Æ×÷½Úµã£¨Node£©£¬±ßÒ²³Æ×÷¹ØÏµ£¨Relationship£©£»ÔÚͼÐÎÖУ¬½ÚµãºÍ¹ØÏµÊÇ×îÖØÒªµÄʵÌ壬ËùÓеĽڵãÊǶÀÁ¢´æÔڵģ¬Îª½ÚµãÉèÖñêÇ©£¬ÄÇôӵÓÐÏàͬ±êÇ©µÄ½ÚµãÊôÓÚÒ»¸ö·Ö×飬һ¸ö¼¯ºÏ£»¹ØÏµÍ¨¹ý¹ØÏµÀàÐÍÀ´·Ö×飬ÀàÐÍÏàͬµÄ¹ØÏµÊôÓÚͬһ¸ö¼¯ºÏ¡£¹ØÏµÊÇÓÐÏòµÄ£¬¹ØÏµµÄÁ½¶ËÊÇÆðʼ½ÚµãºÍ½áÊø½Úµã£¬Í¨¹ýÓÐÏòµÄ¼ýÍ·À´±êʶ·½Ïò£¬½ÚµãÖ®¼äµÄË«Ïò¹ØÏµÍ¨¹ýÁ½¸ö·½ÏòÏà·´µÄ¹ØÏµÀ´±êʶ¡£½Úµã¿ÉÓÐÁã¸ö£¬Ò»¸ö»ò¶à¸ö±êÇ©£¬µ«ÊǹØÏµ±ØÐëÉèÖùØÏµÀàÐÍ£¬²¢ÇÒÖ»ÄÜÉèÖÃÒ»¸ö¹ØÏµÀàÐÍ¡£Neo4jͼÐÎÊý¾Ý¿âµÄ²éѯÓïÑÔÊÇCypher£¬ÓÃÓÚ²Ù×÷ÊôÐÔͼ£¬ÊÇͼÐÎÓïÑÔÖÐÊÂʵÉϵıê×¼¡£

Ò»¡¢Í¼ÐÎÊý¾Ý¿âµÄ»ù±¾¸ÅÄî

Neo4j´´½¨µÄͼ£¨Graph£©»ùÓÚÊôÐÔͼģÐÍ£¬ÔÚ¸ÃÄ£ÐÍÖУ¬Ã¿¸öʵÌå¶¼ÓÐID£¨Identity£©Î¨Ò»±êʶ£¬Ã¿¸ö½ÚµãÓɱêÇ©£¨Lable£©·Ö×飬ÿ¸ö¹ØÏµ¶¼ÓÐÒ»¸öΨһµÄÀàÐÍ£¬ÊôÐÔͼģÐ͵Ļù±¾¸ÅÄîÓУº

ʵÌ壨Entity£©ÊÇÖ¸½Úµã£¨Node£©ºÍ¹ØÏµ£¨Relationship£©£»Â·¾¶£¨Path£©ÊÇÖ¸ÓÉÆðʼ½ÚµãºÍÖÕÖ¹½ÚµãÖ®¼äµÄʵÌ壨½ÚµãºÍ¹ØÏµ£©¹¹³ÉµÄÓÐÐò×éºÏ£»

ÿ¸öʵÌå¶¼ÓÐÒ»¸öΨһµÄID£»

ÿ¸öʵÌå¶¼ÓÐÁã¸ö£¬Ò»¸ö»ò¶à¸öÊôÐÔ£¬Ò»¸öʵÌåµÄÊôÐÔ¼üÊÇΨһµÄ£»

ÿ¸ö½Úµã¶¼ÓÐÁã¸ö£¬Ò»¸ö»ò¶à¸ö±êÇ©£¬ÊôÓÚÒ»¸ö»ò¶à¸ö·Ö×飻

ÿ¸ö¹ØÏµ¶¼Ö»ÓÐÒ»¸öÀàÐÍ£¬ÓÃÓÚÁ¬½ÓÁ½¸ö½Úµã£»

±ê¼Ç£¨Token£©ÊǷǿյÄ×Ö·û´®£¬ÓÃÓÚ±êʶ±êÇ©£¨Lable£©£¬¹ØÏµÀàÐÍ£¨Relationship Type£©£¬»òÊôÐÔ¼ü£¨Property Key£©£»

±êÇ©£ºÓÃÓÚ±ê¼Ç½ÚµãµÄ·Ö×飬¶à¸ö½Úµã¿ÉÒÔÓÐÏàͬµÄ±êÇ©£¬Ò»¸ö½Úµã¿ÉÒÔÓжà¸öLable£¬LableÓÃÓÚ¶Ô½Úµã½øÐзÖ×飻

¹ØÏµÀàÐÍ£ºÓÃÓÚ±ê¼Ç¹ØÏµµÄÀàÐÍ£¬¶à¸ö¹ØÏµ¿ÉÒÔÓÐÏàͬµÄ¹ØÏµÀàÐÍ£»

ÊôÐÔ¼ü£ºÓÃÓÚΨһ±êʶһ¸öÊôÐÔ£»

ÊôÐÔ£¨Property£©ÊÇÒ»¸ö¼üÖµ¶Ô£¨Key/Value Pair£©£¬Ã¿¸ö½Úµã»ò¹ØÏµ¿ÉÒÔÓÐÒ»¸ö»ò¶à¸öÊôÐÔ£»ÊôÐÔÖµ¿ÉÒÔÊDZêÁ¿ÀàÐÍ£¬»òÕâ±êÁ¿ÀàÐ͵ÄÁÐ±í£¨Êý×飩£»

¶þ¡¢Í¼ÐÎʾÀý

ÔÚÏÂÃæµÄͼÐÎÖУ¬´æÔÚÈý¸ö½ÚµãºÍÁ½¸ö¹ØÏµ¹²5¸öʵÌ壻PersonºÍMovieÊÇLable£¬ACTED_IDºÍDIRECTEDÊǹØÏµÀàÐÍ£¬name£¬title£¬rolesµÈÊǽڵãºÍ¹ØÏµµÄÊôÐÔ¡£

ʵÌå°üÀ¨½ÚµãºÍ¹ØÏµ£¬½ÚµãÓбêÇ©ºÍÊôÐÔ£¬¹ØÏµÊÇÓÐÏòµÄ£¬Á´½ÓÁ½¸ö½Úµã£¬¾ßÓÐÊôÐԺ͹ØÏµÀàÐÍ¡£

1£¬ÊµÌå

ÔÚʾÀýͼÐÎÖУ¬°üº¬Èý¸ö½Úµã£¬·Ö±ðÊÇ£º

°üº¬Á½¸ö¹ØÏµ£¬·Ö±ðÊÇ£º

Á½¸ö¹ØÏµÀàÐÍ£ºACTED_INºÍDIRECTED£¬

Á½¸ö¹ØÏµ£ºÁ¬½ÓnameÊôÐÔΪTom Hank½ÚµãºÍMovie½ÚµãµÄ¹ØÏµ£¬Á¬½ÓnameÊôÐÔΪForrest GumpµÄ½ÚµãºÍMovie½ÚµãµÄ¹ØÏµ¡£

ÆäÖÐÒ»¸ö¹ØÏµÈçÏÂͼ£º

2£¬±êÇ©£¨Lable£©

ÔÚͼÐνṹÖУ¬±êÇ©ÓÃÓÚ¶Ô½Úµã½øÐзÖ×飬Ï൱ÓÚ½ÚµãµÄÀàÐÍ£¬ÓµÓÐÏàͬ±êÇ©µÄ½ÚµãÊôÓÚͬһ¸ö·Ö×é¡£Ò»¸ö½Úµã¿ÉÒÔÓµÓÐÁã¸ö£¬Ò»¸ö»ò¶à¸ö±êÇ©£¬Òò´Ë£¬Ò»¸ö½Úµã¿ÉÒÔÊôÓÚ¶à¸ö·Ö×é¡£¶Ô·Ö×é½øÐвéѯ£¬Äܹ»ËõС²éѯµÄ½Úµã·¶Î§£¬Ìá¸ß²éѯµÄÐÔÄÜ¡£

ÔÚʾÀýͼÐÎÖУ¬ÓÐÁ½¸ö±êÇ©PersonºÍMovie£¬Á½¸ö½ÚµãÊÇPerson£¬Ò»¸ö½ÚµãÊÇMovie£¬±êÇ©ÓеãÏñ½ÚµãµÄÀàÐÍ£¬µ«ÊÇ£¬Ã¿¸ö½Úµã¿ÉÒÔÓжà¸ö±êÇ©¡£

3£¬ÊôÐÔ£¨Property£©

ÊôÐÔÊÇÒ»¸ö¼üÖµ¶Ô£¨Key/Value£©£¬ÓÃÓÚΪ½Úµã»ò¹ØÏµÌṩÐÅÏ¢¡£Ò»°ãÇé¿öÏ£¬Ã¿¸ö½Úµã¶¼ÓÉnameÊôÐÔ£¬ÓÃÓÚÃüÃû½Úµã¡£

ÔÚʾÀýͼÐÎÖУ¬Person½ÚµãÓÐÁ½¸öÊôÐÔnameºÍborn£¬Movie½ÚµãÓÐÁ½¸öÊôÐÔ£ºtitleºÍreleased£¬

¹ØÏµÀàÐÍACTED_INÓÐÒ»¸öÊôÐÔ£ºroles£¬¸ÃÊôÐÔÖµÊÇÒ»¸öÊý×飬¶ø¹ØÏµÀàÐÍΪDIRECTEDµÄ¹ØÏµÃ»ÓÐÊôÐÔ

Èý¡¢±éÀú£¨Traversal£©

±éÀúÒ»¸öͼÐΣ¬ÊÇÖ¸ÑØ×ŹØÏµ¼°Æä·½Ïò£¬·ÃÎÊͼÐεĽڵ㡣¹ØÏµÊÇÓÐÏòµÄ£¬Á¬½ÓÁ½¸ö½Úµã£¬´ÓÆðʼ½ÚµãÑØ×ŹØÏµ£¬Ò»²½Ò»²½µ¼º½£¨navigate£©µ½½áÊø½ÚµãµÄ¹ý³Ì½Ð×ö±éÀú£¬±éÀú¾­¹ýµÄ½ÚµãºÍ¹ØÏµµÄÓÐÐò×éºÏ³Æ×÷·¾¶£¨Path£©¡£

ÔÚʾÀýͼÐÎÖУ¬²éÕÒTom Hanks²ÎÑݵĵçÓ°£¬±éÀúµÄ¹ý³ÌÊÇ£º´ÓTom Hanks½Úµã¿ªÊ¼£¬ÑØ×ÅACTED_IN¹ØÏµ£¬Ñ°ÕÒ±êǩΪMovieµÄÄ¿±ê½Úµã¡£

±éÀúµÄ·¾¶Èçͼ£º

ËÄ¡¢Í¼ÐÎÊý¾Ý¿âµÄģʽ

Neo4jµÄģʽ£¨Schema£©Í¨³£ÊÇÖ¸Ë÷Òý£¬Ô¼ÊøºÍͳ¼Æ£¬Í¨¹ý´´½¨Ä£Ê½£¬Neo4jÄܹ»»ñµÃ²éѯÐÔÄܵÄÌáÉýºÍ½¨Ä£µÄ±ãÀû£»Neo4jÊý¾Ý¿âµÄģʽ¿ÉÑ¡µÄ£¬Ò²¿ÉÒÔÊÇÎÞģʽµÄ¡£

1£¬Ë÷Òý

ͼÐÎÊý¾Ý¿âÒ²ÄÜ´´½¨Ë÷Òý£¬ÓÃÓÚÌá¸ßͼÐÎÊý¾Ý¿âµÄ²éѯÐÔÄÜ¡£ºÍ¹ØÏµÐÍÊý¾Ý¿âÒ»Ñù£¬Ë÷ÒýÊÇͼÐÎÊý¾ÝµÄÒ»¸öÈßÓั±¾£¬Í¨¹ý¶îÍâµÄ´æ´¢¿Õ¼äºÍÎþÉüÊý¾Ýд²Ù×÷µÄÐÔÄÜ£¬À´Ìá¸ßÊý¾ÝËÑË÷µÄÐÔÄÜ£¬±ÜÃâ´´½¨²»±ØÒªµÄË÷Òý£¬ÕâÑùÄܹ»¼õÉÙÊý¾Ý¸üеÄÐÔÄÜËðʧ¡£

Neo4jÔÚͼÐνڵãµÄÒ»¸ö»ò¶à¸öÊôÐÔÉÏ´´½¨Ë÷Òý£¬ÔÚË÷Òý´´½¨Íê³ÉÖ®ºó£¬µ±Í¼ÐÎÊý¾Ý¸üÐÂʱ£¬Neo4j¸ºÔðË÷ÒýµÄ×Ô¶¯¸üУ¬Ë÷ÒýµÄÊý¾ÝÊÇʵʱͬ²½µÄ£»ÔÚ²éѯ±»Ë÷ÒýµÄÊôÐÔʱ£¬Neo4j×Ô¶¯Ó¦ÓÃË÷Òý£¬ÒÔ»ñµÃ²éѯÐÔÄܵÄÌáÉý¡£

ÀýÈ磬ʹÓÃCypher´´½¨Ë÷Òý£º

CREATE INDEX ON :Person(firstname)
CREATE INDEX ON :Person(firstname, surname)

2£¬Ô¼Êø

ÔÚͼÐÎÊý¾Ý¿âÖУ¬Äܹ»´´½¨ËÄÖÖÀàÐ͵ÄÔ¼Êø£º

½ÚµãÊôÐÔÖµÎ¨Ò»Ô¼Êø£¨Unique node property£©£ºÈç¹û½Úµã¾ßÓÐÖ¸¶¨µÄ±êÇ©ºÍÖ¸¶¨µÄÊôÐÔ£¬ÄÇôÕâЩ½ÚµãµÄÊôÐÔÖµÊÇΨһµÄ

½ÚµãÊôÐÔ´æÔÚÔ¼Êø£¨Node property existence£©£º´´½¨µÄ½Úµã±ØÐë´æÔÚ±êÇ©ºÍÖ¸¶¨µÄÊôÐÔ

¹ØÏµÊôÐÔ´æÔÚÔ¼Êø£¨Relationship property existence£©£º´´½¨µÄ¹ØÏµ´æÔÚÀàÐͺÍÖ¸¶¨µÄÊôÐÔ

½Úµã¼üÔ¼Êø£¨Node Key£©£ºÔÚÖ¸¶¨µÄ±êÇ©ÖеĽڵãÖУ¬Ö¸¶¨µÄÊôÐÔ±ØÐë´æÔÚ£¬²¢ÇÒÊôÐÔÖµµÄ×éºÏÊÇΨһµÄ

ÀýÈ磬ʹÓÃCypher´´½¨Ô¼Êø£º

CREATE CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE;
CREATE CONSTRAINT ON (book:Book) ASSERT exists(book.isbn);
CREATE CONSTRAINT ON ()-[like:LIKED]-() ASSERT exists(like.day);
CREATE CONSTRAINT ON (n:Person) ASSERT (n.firstname, n.surname) IS NODE KEY;

3£¬Í³¼ÆÐÅÏ¢

µ±Ê¹ÓÃCypher²éѯͼÐÎÊý¾Ý¿âʱ£¬Cypher½Å±¾±»±àÒë³ÉÒ»¸öÖ´Ðмƻ®£¬Ö´ÐиÃÖ´Ðмƻ®»ñµÃ²éѯ½á¹û¡£ÎªÁËÉú³ÉÒ»¸öÐÔÄÜÓÅ»¯µÄÖ´Ðмƻ®£¬Neo4jÐèÒªÊÕ¼¯Í³¼ÆÐÅÏ¢ÒÔ¶Ô²éѯ½øÐÐÓÅ»¯¡£µ±Í³¼ÆÐÅÏ¢±ä»¯µ½Ò»¶¨µÄ¸³ÖµÊ±£¬Neo4jÐèÒªÖØÐÂÉú³ÉÖ´Ðмƻ®£¬ÒÔ±£Ö¤Cypher²éѯÊÇÐÔÄÜÓÅ»¯µÄ£¬Neo4j´æ´¢µÄͳ¼ÆÐÅÏ¢°üÀ¨£º

The number of nodes with a certain label.

Selectivity per index.

The number of relationships by type.

The number of relationships by type, ending or starting from a node with a specific label.

ĬÈÏÇé¿öÏ£¬Neo4j×Ô¶¯¸üÐÂͳ¼ÆÐÅÏ¢£¬µ«ÊÇ£¬Í³¼ÆÐÅÏ¢µÄ¸üв»ÊÇʵʱµÄ£¬¸üÐÂͳ¼ÆÐÅÏ¢¿ÉÄÜÊÇÒ»¸ö·Ç³£ºÄʱµÄ²Ù×÷£¬Òò´Ë£¬Neo4jÔÚºǫ́ÔËÐУ¬²¢ÇÒÖ»Óе±±ä»¯µÄÊý¾Ý´ïµ½Ò»¶¨µÄãÐֵʱ£¬²Å»á¸üÐÂͳ¼ÆÐÅÏ¢¡£

Neo4j keeps the statistics up to date in two different ways. For label counts for example, the number is updated whenever you set or remove a label from a node. For indexes, Neo4j needs to scan the full index to produce the selectivity number. Since this is potentially a very time-consuming operation, these numbers are collected in the background when enough data on the index has been changed.

Neo4j°ÑÖ´Ðмƻ®±»»º´æÆðÀ´£¬ÔÚͳ¼ÆÐÅÏ¢±ä»¯Ö®Ç°£¬Ö´Ðмƻ®²»»á±»ÖØÐÂÉú³É¡£Í¨¹ýÅäÖÃÑ¡ÏNeo4jÄܹ»¿ØÖÆÖ´Ðмƻ®µÄÖØÐÂÉú³É£º

dbms.index_sampling.background_enabled£ºÊÇ·ñÔÚºǫ́ͳ¼ÆË÷ÒýÐÅÏ¢£¬ÓÉÓÚCypher²éѯµÄÖ´Ðмƻ®ÊǸù¾Ýͳ¼ÆÐÅÏ¢Éú³ÉµÄ£¬¼°Ê±¸üÐÂË÷ÒýµÄͳ¼ÆÊý¾Ý¶ÔÉú³ÉÐÔÄÜÓÅ»¯µÄÖ´Ðмƻ®·Ç³£ÖØÒª£»

dbms.index_sampling.update_percentage£ºÔÚ¸üÐÂË÷ÒýµÄͳ¼ÆÐÅϢ֮ǰ£¬Ë÷ÒýÖÐÓжà´ó±ÈÀýµÄÊý¾Ý±»¸üУ»

cypher.statistics_divergence_threshold£ºµ±Í³¼ÆÐÅÏ¢±ä»¯Ê±£¬Neo4j²»»áÁ¢¼´¸üÐÂCypher²éѯµÄÖ´Ðмƻ®£»Ö»Óе±Í³¼ÆÐÅÏ¢±ä»¯µ½Ò»¶¨µÄ³Ì¶Èʱ£¬Neo4j²Å»áÖØÐÂÉú³ÉÖ´Ðмƻ®¡£

Ïà¹ØÎÄÕÂ

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

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

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
   
1853 ´Îä¯ÀÀ       27