指定跳数检索
This commit is contained in:
parent
df7a511001
commit
158bc08bd6
@ -110,73 +110,73 @@ class KnowledgeGraphDatabase:
|
|||||||
"""
|
"""
|
||||||
tx.run(query)
|
tx.run(query)
|
||||||
|
|
||||||
def query_all_nodes_and_relationships(self, kgdb_name):
|
def query_all_nodes_and_relationships(self, kgdb_name, hops = 2):
|
||||||
"""查询图数据库中所有三元组信息"""
|
"""查询图数据库中所有三元组信息"""
|
||||||
self.use_database(kgdb_name)
|
self.use_database(kgdb_name)
|
||||||
def query(tx):
|
def query(tx, hops):
|
||||||
result = tx.run("""
|
result = tx.run(f"""
|
||||||
MATCH (n)-[r]->(m)
|
MATCH (n)-[r*1..{hops}]->(m)
|
||||||
RETURN n, r, m
|
RETURN n, r, m
|
||||||
""")
|
""")
|
||||||
return result.values()
|
return result.values()
|
||||||
|
|
||||||
with self.driver.session() as session:
|
with self.driver.session() as session:
|
||||||
return session.execute_read(query)
|
return session.execute_read(query, hops)
|
||||||
|
|
||||||
def query_specific_entity(self, entity_name, kgdb_name):
|
def query_specific_entity(self, entity_name, kgdb_name, hops = 2):
|
||||||
"""查询指定实体三元组信息"""
|
"""查询指定实体三元组信息"""
|
||||||
self.use_database(kgdb_name)
|
self.use_database(kgdb_name)
|
||||||
def query(tx, entity_name):
|
def query(tx, entity_name, hops):
|
||||||
result = tx.run("""
|
result = tx.run(f"""
|
||||||
MATCH (n {name: $entity_name})-[r]->(m)
|
MATCH (n {{name: $entity_name}})-[r*1..{hops}]->(m)
|
||||||
RETURN n, r, m
|
RETURN n, r, m
|
||||||
""", entity_name=entity_name)
|
""", entity_name=entity_name)
|
||||||
return result.values()
|
return result.values()
|
||||||
|
|
||||||
with self.driver.session() as session:
|
with self.driver.session() as session:
|
||||||
return session.execute_read(query, entity_name)
|
return session.execute_read(query, entity_name, hops)
|
||||||
|
|
||||||
def query_by_relationship_type(self, relationship_type, kgdb_name):
|
def query_by_relationship_type(self, relationship_type, kgdb_name, hops = 2):
|
||||||
"""查询指定关系三元组信息"""
|
"""查询指定关系三元组信息"""
|
||||||
self.use_database(kgdb_name)
|
self.use_database(kgdb_name)
|
||||||
def query(tx, relationship_type):
|
def query(tx, relationship_type, hops):
|
||||||
result = tx.run(f"""
|
result = tx.run(f"""
|
||||||
MATCH (n)-[r:`{relationship_type}`]->(m)
|
MATCH (n)-[r:`{relationship_type}`*1..{hops}]->(m)
|
||||||
RETURN n, r, m
|
RETURN n, r, m
|
||||||
""")
|
""")
|
||||||
return result.values()
|
return result.values()
|
||||||
|
|
||||||
with self.driver.session() as session:
|
with self.driver.session() as session:
|
||||||
return session.execute_read(query, relationship_type)
|
return session.execute_read(query, relationship_type, hops)
|
||||||
|
|
||||||
def query_entity_like(self, keyword, kgdb_name):
|
def query_entity_like(self, keyword, kgdb_name, hops = 2):
|
||||||
"""模糊查询"""
|
"""模糊查询"""
|
||||||
self.use_database(kgdb_name)
|
self.use_database(kgdb_name)
|
||||||
def query(tx, keyword):
|
def query(tx, keyword, hops):
|
||||||
result = tx.run("""
|
result = tx.run(f"""
|
||||||
MATCH (n:Entity)
|
MATCH (n:Entity)
|
||||||
WHERE n.name CONTAINS $keyword
|
WHERE n.name CONTAINS $keyword
|
||||||
MATCH (n)-[r]->(m)
|
MATCH (n)-[r*1..{hops}]->(m)
|
||||||
RETURN n, r, m
|
RETURN n, r, m
|
||||||
""", keyword=keyword)
|
""", keyword=keyword)
|
||||||
return result.values()
|
return result.values()
|
||||||
|
|
||||||
with self.driver.session() as session:
|
with self.driver.session() as session:
|
||||||
return session.execute_read(query, keyword)
|
return session.execute_read(query, keyword, hops)
|
||||||
|
|
||||||
def query_node_info(self, node_name, kgdb_name):
|
def query_node_info(self, node_name, kgdb_name, hops = 2):
|
||||||
"""查询指定节点的详细信息返回信息和"""
|
"""查询指定节点的详细信息返回信息"""
|
||||||
self.use_database(kgdb_name) # 切换到指定数据库
|
self.use_database(kgdb_name) # 切换到指定数据库
|
||||||
def query(tx, node_name):
|
def query(tx, node_name, hops):
|
||||||
result = tx.run("""
|
result = tx.run(f"""
|
||||||
MATCH (n {name: $node_name})
|
MATCH (n {{name: $node_name}})
|
||||||
OPTIONAL MATCH (n)-[r]->(m)
|
OPTIONAL MATCH (n)-[r*1..{hops}]->(m)
|
||||||
RETURN n, r, m
|
RETURN n, r, m
|
||||||
""", node_name=node_name)
|
""", node_name=node_name)
|
||||||
return result.values()
|
return result.values()
|
||||||
|
|
||||||
with self.driver.session() as session:
|
with self.driver.session() as session:
|
||||||
return session.execute_read(query, node_name)
|
return session.execute_read(query, node_name, hops)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user