def create_node_or_node_rel(node_key1, node1_id, node1_index_name, rel, node_key2, node2_id, node2_index_name): Index = ManualIndexManager(graph) node_index = Index.get_index(Node, node1_index_name) group_index = Index.get_index(Node, node2_index_name) print node_index print group_index tx = graph.begin() node1 = node_index.get(node_key1, node1_id)[0] node2 = group_index.get(node_key2, node2_id)[0] if not (node1 and node2): print "node does not exist" return 'does not exist' c_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s') MATCH (start_node)-[r:%s]->(end_node) RETURN r" % ( node1_index_name, node_key1, node1_id, node2_index_name, node_key2, node2_id, rel) # return c_string result = graph.run(c_string) # print result # rel_list = [] for item in result: rel_list.append(item) # print rel_list if rel in rel_list: return 'has relation already' rel = Relationship(node1, rel, node2) graph.create(rel) print "create success" return True
def create_node_or_node_rel(node_key1, node1_id, node1_index_name, rel, node_key2, node2_id, node2_index_name): Index = ManualIndexManager(graph) node_index = Index.get_index(Node, node1_index_name) group_index = Index.get_index(Node, node2_index_name) print node_index print group_index tx = graph.begin() node1 = node_index.get(node_key1, node1_id)[0] node2 = group_index.get(node_key2, node2_id)[0] if not (node1 and node2): print "node does not exist" return '1' c_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s') MATCH (start_node)-[r:%s]->(end_node) RETURN r" % ( node1_index_name, 'pname', node1_id, node2_index_name, 'pname', node2_id, rel) print c_string result = graph.run(c_string) print result rel_list = [] for item in result: rel_list.append(item) print rel_list if not rel_list: rel = Relationship(node1, rel, node2) graph.create(rel) print "create success" else: print "The current two nodes already have a relationship" return '0' return '2'
def create_rel(node_key1, node1_list, node1_index_name, rel, node_key2, node2_id, node2_index_name, submit_user): Index = ManualIndexManager(graph) node_index = Index.get_index(Node, node1_index_name) group_index = Index.get_index(Node, node2_index_name) tx = graph.begin() print node1_list, '00990909000000000000' for node1_id in node1_list: print node1_id, '----==!!!==----' node1 = node_index.get(node_key1, node1_id) node1 = node_index.get(node_key1, node1_id)[0] node2 = group_index.get(node_key2, node2_id)[0] if not (node1 and node2): print "node does not exist" return 'node does not exist' c_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s') MATCH (start_node)-[r:%s]->(end_node) RETURN r" % ( node1_index_name, node_key1, node1_id, node2_index_name, node_key2, node2_id, rel) result = graph.run(c_string) rel_list = [] for item in result: rel_list.append(item) if rel not in rel_list: rel2 = Relationship(node1, rel, node2) graph.create(rel2) print "create success" return 'success'
def create_person(node_type, node_key, node_id, node_name_index): Index = ManualIndexManager(graph) node_name = Index.get_or_create_index(Node, node_name_index) if node_name: exist = node_name.get(node_key, node_id) if exist: return 'Node Exist' #节点已存在 else: if node_key == "uid": person_node = Node(node_type, uid=node_id) elif node_key == "org_id": person_node = Node(node_type, org_id=node_id) elif node_key == "event_id": person_node = Node(node_type, event_id=node_id) elif node_key == "event": person_node = Node(node_type, event=node_id) elif node_key == "group": person_node = Node(node_type, group=node_id) else: return 'Node Type Wrong' #节点类型错误 graph.create(person_node) node_name.add(node_key, node_id, person_node) return 'Node Success' #创建节点成功 else: return 'Node Wrong' #创建节点失败
def create_rel(node_key1, node1_list, node1_index_name, rel, node_key2, node2_id, node2_index_name, submit_user): Index = ManualIndexManager(graph) node_index = Index.get_index(Node, node1_index_name) group_index = Index.get_index(Node, node2_index_name) tx = graph.begin() for node1_id in node1_list: # print node2_id # print node1_id,'-----' # node1 = node_index.get(node_key1, node1_id) try: node1 = node_index.get(node_key1, node1_id)[0] # print node1, node1_id,'node1 hey2222!!' except: continue # print node1, node1_id,'node1 hey!!' return 'uid1 not exist' node2 = group_index.get(node_key2, node2_id)[0] if not (node1 and node2): print "node does not exist" return 'node does not exist' c_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s') MATCH (start_node)-[r:%s]->(end_node) RETURN r" % ( node1_index_name, node_key1, node1_id, node2_index_name, node_key2, node2_id, rel) result = graph.run(c_string) rel_list = [] for item in result: print item,'00000000000' rel_list.append(item) if rel not in rel_list: rel2 = Relationship(node1, rel, node2) graph.create(rel2) print "create success" else: return 'has relation' return '1'
def create_node_or_node_rel(node_key1, node1_id, node1_index_name, rel, node_key2, node2_id, node2_index_name): Index = ManualIndexManager(graph) node_index = Index.get_index(Node, node1_index_name) group_index = Index.get_index(Node, node2_index_name) tx = graph.begin() if len(node_index.get(node_key1, node1_id)) == 0: return 'Node1 does not exist' if len(group_index.get(node_key2, node2_id)) == 0: return "Node2 does not exist" node1 = node_index.get(node_key1, node1_id)[0] node2 = group_index.get(node_key2, node2_id)[0] if not (node1 and node2): return "Node1 and Node2 do not exist" c_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s') MATCH (start_node)-[r:%s]->(end_node) RETURN r" \ % (node1_index_name, node_key1, node1_id, node2_index_name, node_key2, node2_id, rel) result = graph.run(c_string) # print result rel_list = [] for item in result: rel_list.append(item) if not rel_list: rel = Relationship(node1, rel, node2) graph.create(rel) return "Create success" else: return "The current two nodes already have a relationship"
def create_node_or_node_rel(node_key1, node1_id, node1_index_name, rel_union, node_key2, node2_id, node2_index_name): Index = ManualIndexManager(graph) node_index = Index.get_index(Node, node1_index_name) group_index = Index.get_index(Node, node2_index_name) print node_index print group_index tx = graph.begin() node1 = node_index.get(node_key1, node1_id)[0] node2 = group_index.get(node_key2, node2_id)[0] if not (node1 and node2): print "node does not exist" return 'does not exist' # c_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s') MATCH (start_node)-[r:%s]->(end_node) RETURN r" % ( # node1_index_name,node_key1, node1_id, node2_index_name, node_key2, node2_id, rel) # # return c_string # result = graph.run(c_string) # # print result # rel_list = [] # for item in result: # rel_list.append(item) # # print rel_list # if rel in rel_list: # return 'has relation already' rel = rel_union.split(',')[0] if rel in [other_rel, event_other, organization_tag, user_tag]: rel_name = rel_union.split(',')[1] c_string = "START start_node=node:%s(%s='%s'), end_node=node:%s(%s='%s') \ MATCH (start_node)-[r:%s]->(end_node) RETURN type(r), r.name" % (node1_index_name,\ node_key1, node1_id, node2_index_name, node_key2, node2_id, rel) result = graph.run(c_string) exist_relation = [] for i in result: dict_i = dict(i) exist_relation = dict_i['r.name'].split(',') if exist_relation: del_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s') \ MATCH (start_node)-[r:%s]->(end_node) delete r" % (node1_index_name,\ node_key1, node1_id, node2_index_name, node_key2, node2_id, rel) result = graph.run(del_string) exist_relation.append(rel_name) exist_relation = [i for i in set(exist_relation)] add_relation_string = ','.join(exist_relation) c_string = "START start_node=node:%s(%s='%s'),end_node=node:%s(%s='%s')\ create (start_node)-[r:%s {name:'%s'} ]->(end_node) " %(node1_index_name,\ node_key1, node1_id, node2_index_name, node_key2, node2_id, rel, add_relation_string) result = graph.run(c_string) else: rel = Relationship(node1, rel, node2) graph.create(rel) print "create success" return True
def create_node_and_rel(node_key1, node1_list, node1_index_name, rel, node_key2, \ node2_id, node2_index_name, submit_user, k_label, node2_name): Index = ManualIndexManager(graph) # manage index group_index = Index.get_or_create_index(Node, node2_index_name) p_node2_id = p.get_pinyin(node2_id) p_node2_id = p_node2_id.lower() c_string = "START end_node=node:%s(%s='%s') RETURN end_node"\ % (node2_index_name, node_key2, p_node2_id) print c_string try: result = graph.run(c_string) except: result = [] node_l = [] for i in result: node_l.append(i[0]) if len(node_l) > 0: #判断对否有该节点存在 return 'group already exist' else: group_dict = {} group_dict['group_name'] = node2_name group_dict['people'] = '&'.join(node1_list) group_dict['people_count'] = len(node1_list) group_dict['create_ts'] = int(time.time()) group_dict['user'] = submit_user group_dict['k_label'] = '&'.join(k_label.split(',')) group_id = p.get_pinyin(node2_id) group_id = group_id.lower() labels = get_special_labels(node1_list) group_dict['label'] = labels wiki_link = getUrlByKeyWordList(labels) group_dict['wiki_link'] = json.dumps(wiki_link) # es_group.delete(index=group_name, doc_type=group_type, id='*****@*****.**') es_group.index(index=group_name, doc_type=group_type, id=group_id, body=group_dict) new_group = Node(group_node, group=group_id) graph.create(new_group) group_index.add("group", group_id, new_group) # return 'succeed' user_org = search_user_type(node1_list) user_id = user_org[0] org_id = user_org[1] flag = create_rel(node_key1, user_id, node1_index_name, rel, node_key2, group_id, node2_index_name, submit_user) node_key11 = org_primary node11_index_name = org_index_name info = create_rel(node_key1, org_id, node1_index_name, rel, node_key2, group_id, node2_index_name, submit_user) return info
def create_node_and_rel(node_key1, node1_list, node1_index_name, rel, node_key2, \ node2_id, node2_index_name, submit_user, k_label, node2_name): Index = ManualIndexManager(graph) # manage index theme_index = Index.get_or_create_index(Node, node2_index_name) p_node2_id = p.get_pinyin(node2_id) p_node2_id = p_node2_id.lower() c_string = "START end_node=node:%s(%s='%s') RETURN end_node"\ % (node2_index_name, node_key2, p_node2_id) print c_string try: result = graph.run(c_string) except: result = [] node_l = [] for i in result: # node1_l node_l.append(i[0]) if len(node_l) > 0: #判断对否有该节点存在 return 'theme already exist' else: theme_dict = {} theme_dict['topic_name'] = node2_name theme_dict['event'] = '&'.join(node1_list) theme_dict['event_count'] = len(node1_list) theme_dict['create_ts'] = int(time.time()) theme_dict['user'] = submit_user if k_label: k_label = '&'.join(k_label.split(',')) theme_dict['k_label'] = k_label topic_id = p.get_pinyin(node2_id) topic_id = topic_id.lower() labels = get_special_labels(node1_list) theme_dict['label'] = labels wiki_link = getUrlByKeyWordList(labels) theme_dict['wiki_link'] = json.dumps(wiki_link) # es_event.delete(index=special_event_name, doc_type=special_event_type, id='*****@*****.**') es_event.index(index=special_event_name, doc_type=special_event_type, id=topic_id, body=theme_dict) new_theme = Node(special_event_node, event=topic_id) graph.create(new_theme) theme_index.add("event", topic_id, new_theme) # return 'succeed' info = create_rel(node_key1, node1_list, node1_index_name, rel, node_key2, topic_id, node2_index_name, submit_user) return info
def create_node_and_rel(node_key1, node1_list, node1_index_name,\ rel, node_key2, node2_id, node2_index_name): Index = ManualIndexManager(graph) # manage index theme_index = Index.get_index(Node, node2_index_name) c_string = "START end_node=node:%s(%s='%s') RETURN end_node"\ % (node2_index_name, node_key2, node2_id) # print c_string result = graph.run(c_string) node_l = [] for i in result: # node1_l node_l.append(i[0]) if len(node_l) > 0: #判断对否有该节点存在 return 'theme already exist' else: new_theme = Node('SpecialEvent', event=node2_id) graph.create(new_theme) theme_index.add("event", node2_id, new_theme) # return 'succeed' info = create_rel(node_key1, node1_list, node1_index_name, rel, node_key2, node2_id, node2_index_name) return info
def g_create_node_and_rel(node_key1, node1_list, node1_index_name, rel, node_key2, node2_id, node2_index_name): print node1_list, '!!!!!!!!@@@@@@@@@@@' Index = ManualIndexManager(graph) # manage index group_index = Index.get_index(Node, node2_index_name) c_string = "START end_node=node:%s(%s='%s') RETURN end_node"\ % (node2_index_name, node_key2, node2_id) # print c_string result = graph.run(c_string) node_l = [] for i in result: # node1_l node_l.append(i[0]) if len(node_l) > 0: #判断对否有该节点存在 return 'group already exist' else: new_group = Node('Group', group=node2_id) graph.create(new_group) group_index.add("group", node2_id, new_group) # return 'succeed' info = g_create_rel(node_key1, node1_list, node1_index_name, rel, node_key2, node2_id, node2_index_name) return info
def create_person(node_type, node_key, node_id, node_name_index, attribute_dict=dict()): Index = ManualIndexManager(graph) node_name = Index.get_or_create_index(Node, node_name_index) print node_name if node_name: exist = node_name.get(node_key, node_id) print exist if exist: person_node = exist[0] for k, v in attribute_dict.iteritems(): person_node[k] = v graph.push(person_node) else: person_node = Node(node_type, uid=node_id) for k, v in attribute_dict.iteritems(): person_node[k] = v graph.create(person_node) node_name.add(node_key, node_id, person_node) print "create person success" return True