From 24380986c8a248cf8190edf09e4aa592a5e2ccf0 Mon Sep 17 00:00:00 2001 From: venti <1308199824@qq.com> Date: Sat, 30 May 2026 16:38:07 +0800 Subject: [PATCH] fix: preserve entities without community assignment in _filter_under_community_level (#2348) _filter_under_community_level uses df.level <= community_level which evaluates to False for NaN values, silently dropping all entities that were not assigned to any community during Leiden detection. Fix by adding df.level.isna() to the filter condition. Also add None handling for community_level parameter so callers can bypass the filter entirely. --- packages/graphrag/graphrag/query/indexer_adapters.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/graphrag/graphrag/query/indexer_adapters.py b/packages/graphrag/graphrag/query/indexer_adapters.py index 7119ad842c..1f2592242e 100644 --- a/packages/graphrag/graphrag/query/indexer_adapters.py +++ b/packages/graphrag/graphrag/query/indexer_adapters.py @@ -217,9 +217,11 @@ def embed_community_reports( def _filter_under_community_level( - df: pd.DataFrame, community_level: int + df: pd.DataFrame, community_level: int | None ) -> pd.DataFrame: + if community_level is None: + return df return cast( "pd.DataFrame", - df[df.level <= community_level], + df[(df.level <= community_level) | df.level.isna()], )