You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							54 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							54 lines
						
					
					
						
							2.0 KiB
						
					
					
				| import redis | |
| from redisgraph import Node, Edge, Graph | |
| 
 | |
| 
 | |
| def print_res(result): | |
|     # Iterate through resultset, skip header row at position 0 | |
|     for record in result.result_set: | |
|         person_name = record[0] | |
|         person_age = record[1] | |
|         person_gender = record[2] | |
|         person_status = record[3] | |
|         country_name = record[4] | |
|         print('Name: {:>12}\tAge: {:>4}\tGender: {:>6}\tStatus: {:>10}\t Country: {}'.format(person_name, person_age, | |
|                                                                                              person_gender, | |
|                                                                                              person_status, | |
|                                                                                              country_name)) | |
| 
 | |
| 
 | |
| def main(): | |
|     r = redis.Redis(decode_responses=True, host='localhost', port=6379) | |
|     r.delete('travel') | |
|     redis_graph = Graph('travel', r) | |
| 
 | |
|     john = Node(label='person', properties={'name': 'John Doe', 'age': 33, 'gender': 'male', 'status': 'single'}) | |
|     redis_graph.add_node(john) | |
| 
 | |
|     japan = Node(label='country', properties={'name': 'Japan'}) | |
|     redis_graph.add_node(japan) | |
| 
 | |
|     edge_john = Edge(john, 'visited', japan, properties={'purpose': 'pleasure'}) | |
|     redis_graph.add_edge(edge_john) | |
| 
 | |
|     pearl = Node(label='person', properties={'name': 'Pearl White', 'age': 25, 'gender': 'female', 'status': 'married'}) | |
|     redis_graph.add_node(pearl) | |
| 
 | |
|     australia = Node(label='country', properties={'name': 'Australia'}) | |
|     redis_graph.add_node(australia) | |
| 
 | |
|     edge_pearl = Edge(pearl, 'visited', australia, properties={'purpose': 'business'}) | |
|     redis_graph.add_edge(edge_pearl) | |
| 
 | |
|     redis_graph.commit() | |
| 
 | |
|     print('') | |
|     for i in ['pleasure', 'business']: | |
|         print('==== Purpose: {} ===='.format(i)) | |
|         query = f'''MATCH (p:person)-[v:visited {{purpose:"{i}"}}]->(c:country) | |
| 			RETURN p.name, p.age, p.gender, p.status, c.name''' | |
|         result = redis_graph.query(query) | |
|         print_res(result) | |
|         print('') | |
| 
 | |
| if __name__ == '__main__': | |
|     exit(main())
 | |
| 
 |