diff --git a/graphrag/search.py b/graphrag/search.py index c0cd1098c..0074c1515 100644 --- a/graphrag/search.py +++ b/graphrag/search.py @@ -65,9 +65,12 @@ class KGSearch(Dealer): def _ent_info_from_(self, es_res, sim_thr=0.3): res = {} - es_res = self.dataStore.getFields(es_res, ["content_with_weight", "_score", "entity_kwd", "rank_flt", - "n_hop_with_weight"]) + flds = ["content_with_weight", "_score", "entity_kwd", "rank_flt", "n_hop_with_weight"] + es_res = self.dataStore.getFields(es_res, flds) for _, ent in es_res.items(): + for f in flds: + if f in ent and ent[f] is None: + del ent[f] if float(ent.get("_score", 0)) < sim_thr: continue if isinstance(ent["entity_kwd"], list): diff --git a/rag/utils/infinity_conn.py b/rag/utils/infinity_conn.py index e8a38c177..66d5145d9 100644 --- a/rag/utils/infinity_conn.py +++ b/rag/utils/infinity_conn.py @@ -311,6 +311,7 @@ class InfinityConnection(DocStoreConnection): if matchExprs: selectFields.append(score_func) selectFields.append(PAGERANK_FLD) + selectFields = [f for f in selectFields if f != "_score"] # Prepare expressions common to all tables filter_cond = None @@ -405,7 +406,7 @@ class InfinityConnection(DocStoreConnection): if matchExprs: res = res.sort(pl.col(score_column) + pl.col(PAGERANK_FLD), descending=True, maintain_order=True) if score_column and score_column != "SCORE": - res = res.rename({score_column: "SCORE"}) + res = res.rename({score_column: "_score"}) res = res.limit(limit) logger.debug(f"INFINITY search final result: {str(res)}") return res, total_hits_count