From 57c99dd811cafcc45676414a02aa8be7cb7fcca1 Mon Sep 17 00:00:00 2001 From: Zhichang Yu Date: Thu, 19 Dec 2024 13:49:36 +0800 Subject: [PATCH] Fixed infinity exception SCORE() / SCORE_FACTORS() requires Fusion or MATCH TEXT or MATCH TENSOR (#4110) ### What problem does this PR solve? Fixed infinity exception SCORE() / SCORE_FACTORS() requires Fusion or MATCH TEXT or MATCH TENSOR. Close #4109 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- rag/utils/infinity_conn.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rag/utils/infinity_conn.py b/rag/utils/infinity_conn.py index 7c56a107a..e820400fd 100644 --- a/rag/utils/infinity_conn.py +++ b/rag/utils/infinity_conn.py @@ -247,9 +247,12 @@ class InfinityConnection(DocStoreConnection): db_instance = inf_conn.get_database(self.dbName) df_list = list() table_list = list() - for essential_field in ["id", "score()", "pagerank_fea"]: + for essential_field in ["id"]: if essential_field not in selectFields: selectFields.append(essential_field) + if matchExprs: + for essential_field in ["score()", "pagerank_fea"]: + selectFields.append(essential_field) # Prepare expressions common to all tables filter_cond = None @@ -337,7 +340,8 @@ class InfinityConnection(DocStoreConnection): df_list.append(kb_res) self.connPool.release_conn(inf_conn) res = concat_dataframes(df_list, selectFields) - res = res.sort(pl.col("SCORE") + pl.col("pagerank_fea"), descending=True, maintain_order=True) + if matchExprs: + res = res.sort(pl.col("SCORE") + pl.col("pagerank_fea"), descending=True, maintain_order=True) res = res.limit(limit) logger.debug(f"INFINITY search final result: {str(res)}") return res, total_hits_count