Skip to content

Commit 451af39

Browse files
authored
Full text search (#193)
1 parent 256734f commit 451af39

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

business_objects/record.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,3 +981,28 @@ def get_records_by_running_ids(project_id: str, running_ids: List[int]) -> List[
981981
)
982982
.all()
983983
)
984+
985+
986+
def get_record_data_by_sanitized_where(
987+
refinery_project_id: str,
988+
sanitized_where: str,
989+
limit: int,
990+
order_by: Optional[str] = None,
991+
) -> List[Dict[str, Any]]:
992+
## only to be used in cognition and with sql_validator check!!
993+
refinery_project_id = prevent_sql_injection(
994+
refinery_project_id, isinstance(refinery_project_id, str)
995+
)
996+
final_order = ""
997+
if order_by:
998+
order_by = prevent_sql_injection(order_by, isinstance(order_by, str))
999+
final_order = f" ORDER BY {order_by} "
1000+
query = f"""
1001+
SELECT r.data::JSON
1002+
FROM public.record r
1003+
WHERE project_id = '{refinery_project_id}' AND ({sanitized_where})
1004+
{final_order}
1005+
LIMIT {limit}
1006+
"""
1007+
data = general.execute_all(query)
1008+
return [row[0] for row in data] if data else []

enums.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,7 @@ class StrategyStepType(Enum):
567567
GRAPHRAG_SEARCH = "GRAPHRAG_SEARCH"
568568
TEMPLATED = "TEMPLATED"
569569
RERANKER = "RERANKER"
570+
FULL_TEXT_SEARCH = "FULL_TEXT_SEARCH"
570571

571572
def get_description(self):
572573
return STEP_DESCRIPTIONS.get(self, "No description available")
@@ -596,6 +597,7 @@ def get_progress_text(self):
596597
StrategyStepType.GRAPHRAG_SEARCH: "Query GraphRAG index",
597598
StrategyStepType.TEMPLATED: "Templated step",
598599
StrategyStepType.RERANKER: "Reranker",
600+
StrategyStepType.FULL_TEXT_SEARCH: "Full text search",
599601
}
600602

601603
STEP_WHEN_TO_USE = {
@@ -615,6 +617,7 @@ def get_progress_text(self):
615617
StrategyStepType.GRAPHRAG_SEARCH: "When you want to query a knowledge graph",
616618
StrategyStepType.TEMPLATED: "When you want to reuse existing templates",
617619
StrategyStepType.RERANKER: "When you want to rerank results",
620+
StrategyStepType.FULL_TEXT_SEARCH: "When you want to perform a full text search",
618621
}
619622

620623
STEP_PROGRESS_TEXTS = {
@@ -635,6 +638,7 @@ def get_progress_text(self):
635638
StrategyStepType.GRAPHRAG_SEARCH: "Querying knowledge graph",
636639
StrategyStepType.TEMPLATED: "Running templated step",
637640
StrategyStepType.RERANKER: "Running reranker",
641+
StrategyStepType.FULL_TEXT_SEARCH: "Running full text search",
638642
}
639643

640644
STEP_ERRORS = {

0 commit comments

Comments
 (0)