mirror of
https://github.com/bellingcat/osm-search.git
synced 2026-06-08 03:28:33 +03:00
Add support for fuzzy matching comparisons
This commit is contained in:
13
api/api.py
13
api/api.py
@@ -215,6 +215,19 @@ def make_filter_query(filter):
|
||||
if 'value' not in subfilter or subfilter['value'] == '':
|
||||
filter_query = sql.SQL("{filter_query} ({parameter} {comparison})").format(filter_query=filter_query, parameter=parameter, comparison=sql.SQL(subfilter['comparison']))
|
||||
else:
|
||||
if subfilter['comparison'] == 'starts with':
|
||||
subfilter['value'] = f"{subfilter['value']}%"
|
||||
subfilter['comparison'] = 'ILIKE'
|
||||
elif subfilter['comparison'] == 'ends with':
|
||||
subfilter['value'] = f"%{subfilter['value']}"
|
||||
subfilter['comparison'] = 'ILIKE'
|
||||
elif subfilter['comparison'] == 'contains':
|
||||
subfilter['value'] = f"%{subfilter['value']}%"
|
||||
subfilter['comparison'] = 'ILIKE'
|
||||
elif subfilter['comparison'] == 'does not contain':
|
||||
subfilter['value'] = f"%{subfilter['value']}%"
|
||||
subfilter['comparison'] = 'NOT ILIKE'
|
||||
|
||||
filter_query = sql.SQL("{filter_query} ({parameter} {comparison} {value})").format(filter_query=filter_query, parameter=parameter, comparison=sql.SQL(subfilter['comparison']), value=sql.Literal(subfilter['value']))
|
||||
|
||||
if i != len(filter['filters']) - 1:
|
||||
|
||||
Reference in New Issue
Block a user