diff --git a/app/db_sql.py b/app/db_sql.py index 198940e..8f074f2 100644 --- a/app/db_sql.py +++ b/app/db_sql.py @@ -1819,13 +1819,25 @@ def sql_where_qry_part( for qry in qry_dict_li: log.debug(qry) if qry.get('type') == '': - sql_where_qry_str.append(f'{qry.get("field")} {qry.get("operator")} :{qry.get("field")}') + if qry.get("operator") == 'MATCH': + # sql_where_qry_str.append(f'{qry.get("field")} {qry.get("operator")} AGAINST(:{qry.get("field")} IN BOOLEAN MODE)') + sql_where_qry_str.append(f'AND MATCH( {qry.get("field")} ) AGAINST( :{qry.get("field")} IN BOOLEAN MODE )') + else: + sql_where_qry_str.append(f'AND {qry.get("field")} {qry.get("operator")} :{qry.get("field")}') data[qry.get('field')] = qry.get('value') elif qry.get('type') == 'AND': - sql_where_qry_str.append(f'AND {qry.get("field")} {qry.get("operator")} :{qry.get("field")}') + if qry.get("operator") == 'MATCH': + # sql_where_qry_str.append(f'AND {qry.get("field")} {qry.get("operator")} AGAINST(:{qry.get("field")} IN BOOLEAN MODE)') + sql_where_qry_str.append(f'AND MATCH( {qry.get("field")} ) AGAINST( :{qry.get("field")} IN BOOLEAN MODE )') + else: + sql_where_qry_str.append(f'AND {qry.get("field")} {qry.get("operator")} :{qry.get("field")}') data[qry.get('field')] = qry.get('value') elif qry.get('type') == 'OR': - sql_where_qry_str.append(f'OR {qry.get("field")} {qry.get("operator")} :{qry.get("field")}') + if qry.get("operator") == 'MATCH': + # sql_where_qry_str.append(f'OR {qry.get("field")} {qry.get("operator")} AGAINST(:{qry.get("field")} IN BOOLEAN MODE)') + sql_where_qry_str.append(f'OR MATCH( {qry.get("field")} ) AGAINST( :{qry.get("field")} IN BOOLEAN MODE )') + else: + sql_where_qry_str.append(f'OR {qry.get("field")} {qry.get("operator")} :{qry.get("field")}') data[qry.get('field')] = qry.get('value') else: log.error(f'Unknown query type: {qry.get("type")}')