fix(graph): 修正上传节点查询时未过滤Upload标签的问题

确保所有查询操作仅针对Upload类型的节点,避免返回不相关的实体数据
This commit is contained in:
Wenjie Zhang 2025-12-20 15:45:03 +08:00
parent c5dde79051
commit 2e9fd9cbe0
2 changed files with 7 additions and 6 deletions

View File

@ -48,7 +48,7 @@ class UploadGraphAdapter(GraphAdapter):
num = kwargs.get("max_nodes", 100) num = kwargs.get("max_nodes", 100)
raw_results = self._db._get_sample_nodes_with_connections( raw_results = self._db._get_sample_nodes_with_connections(
num=num, num=num,
label_filter=None, # Upload 类型不需要标签过滤 label_filter="Upload",
) )
else: else:
# 否则执行关键词搜索(使用 service 的查询功能) # 否则执行关键词搜索(使用 service 的查询功能)

View File

@ -601,7 +601,7 @@ class UploadGraphService:
def query_fuzzy_match(tx, keyword): def query_fuzzy_match(tx, keyword):
result = tx.run( result = tx.run(
""" """
MATCH (n:Entity) MATCH (n:Upload)
WHERE toLower(n.name) CONTAINS toLower($keyword) WHERE toLower(n.name) CONTAINS toLower($keyword)
RETURN DISTINCT n.name AS name RETURN DISTINCT n.name AS name
""", """,
@ -639,6 +639,7 @@ class UploadGraphService:
""" """
CALL db.index.vector.queryNodes('entityEmbeddings', 10, $embedding) CALL db.index.vector.queryNodes('entityEmbeddings', 10, $embedding)
YIELD node AS similarEntity, score YIELD node AS similarEntity, score
WHERE 'Upload' IN labels(similarEntity)
RETURN similarEntity.name AS name, score RETURN similarEntity.name AS name, score
""", """,
embedding=embedding, embedding=embedding,
@ -679,7 +680,7 @@ class UploadGraphService:
query_str = """ query_str = """
WITH [ WITH [
// 1跳出边 // 1跳出边
[(n {name: $entity_name})-[r1]->(m1) | [(n:Upload {name: $entity_name})-[r1]->(m1) |
{h: {id: elementId(n), name: n.name, properties: properties(n)}, {h: {id: elementId(n), name: n.name, properties: properties(n)},
r: { r: {
id: elementId(r1), id: elementId(r1),
@ -690,7 +691,7 @@ class UploadGraphService:
}, },
t: {id: elementId(m1), name: m1.name, properties: properties(m1)}}], t: {id: elementId(m1), name: m1.name, properties: properties(m1)}}],
// 2跳出边 // 2跳出边
[(n {name: $entity_name})-[r1]->(m1)-[r2]->(m2) | [(n:Upload {name: $entity_name})-[r1]->(m1)-[r2]->(m2) |
{h: {id: elementId(m1), name: m1.name, properties: properties(m1)}, {h: {id: elementId(m1), name: m1.name, properties: properties(m1)},
r: { r: {
id: elementId(r2), id: elementId(r2),
@ -701,7 +702,7 @@ class UploadGraphService:
}, },
t: {id: elementId(m2), name: m2.name, properties: properties(m2)}}], t: {id: elementId(m2), name: m2.name, properties: properties(m2)}}],
// 1跳入边 // 1跳入边
[(m1)-[r1]->(n {name: $entity_name}) | [(m1)-[r1]->(n:Upload {name: $entity_name}) |
{h: {id: elementId(m1), name: m1.name, properties: properties(m1)}, {h: {id: elementId(m1), name: m1.name, properties: properties(m1)},
r: { r: {
id: elementId(r1), id: elementId(r1),
@ -712,7 +713,7 @@ class UploadGraphService:
}, },
t: {id: elementId(n), name: n.name, properties: properties(n)}}], t: {id: elementId(n), name: n.name, properties: properties(n)}}],
// 2跳入边 // 2跳入边
[(m2)-[r2]->(m1)-[r1]->(n {name: $entity_name}) | [(m2)-[r2]->(m1)-[r1]->(n:Upload {name: $entity_name}) |
{h: {id: elementId(m2), name: m2.name, properties: properties(m2)}, {h: {id: elementId(m2), name: m2.name, properties: properties(m2)},
r: { r: {
id: elementId(r2), id: elementId(r2),