Deal with SQL MATCH better
This commit is contained in:
@@ -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")}')
|
||||
|
||||
Reference in New Issue
Block a user