#1892·graphiti

[BUG] FalkorDB: SearchFilters(node_labels=[...]) 具有 2 个以上标签时会引发 Cypher 语法错误

作者: kentonium3创建于 2026年9月17日更新于 2026年9月17日

** Version:** 平面图-核心0.30.2,Falkordb 1.7.1客户端,FalkordB服务器 4.20.1

□ 总结 `SearchFilters(node labels=[.])'使用一个标签,但两个或两个以上在FalkorDB上失败。

□ 重现

zz
cfg = searchConfig(node config=NodeSearch Config (search methods= [NodeSearch Method.cosine similarial]),, , 出自"搜狐网"("搜狐网").
reranker=NodeReranker.rrf),限制=50 (中文(简体) ).
等待 g. search  ("容量截止日期"), config=cfg, group ids= ["g1"],
search filter=SearchFilters (node labels= ["能力"]) # OK(请检查date=中的日期值 (帮助)
等待 g. search  ("容量截止日期"), config=cfg, group ids= ["g1"],
search filter=SearchFilters (node labers= ["能力","承诺"]])#错误

□ 实际

Redis. 例外. ResponseError: 错误的Msg: 无效的输入 “% ” : 预期的标签, “... ” , 以及 OR, XOR, 不“% ” ,...

□因缘. “search/search filters.py”将每个非库祖供应商的标签过滤器建立为'.join(filters.node lables)',给出了n:A'-B'标签表达式。 这发生在node search filter query 构造者'中,同样的结合出现在edge search filter query 构造者'中,我没有测试。 FalkorDB 的 Cypher 解析器拒绝这个表达式; 它是 Neo4j 风格的标签-表达式语法, 尽管我没有验证 Neo4j 侧. FalkorDB分支(例如任何(l IN (n) Where l $lables)'),与现有的Kuzu分支一样,可以避免它。

工作间

每个标签一个`搜索'呼叫,结果合并.

内容来源: getzep/graphiti