Deal with SQL MATCH better

This commit is contained in:
Scott Idem
2025-06-09 14:43:30 -04:00
parent b489b72ff5
commit f124018125

View File

@@ -1819,13 +1819,25 @@ def sql_where_qry_part(
for qry in qry_dict_li: for qry in qry_dict_li:
log.debug(qry) log.debug(qry)
if qry.get('type') == '': 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') data[qry.get('field')] = qry.get('value')
elif qry.get('type') == 'AND': 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') data[qry.get('field')] = qry.get('value')
elif qry.get('type') == 'OR': 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') data[qry.get('field')] = qry.get('value')
else: else:
log.error(f'Unknown query type: {qry.get("type")}') log.error(f'Unknown query type: {qry.get("type")}')