fix: add support for like filter
This commit is contained in:
parent
d2ca1d63f4
commit
952ee8f22e
1 changed files with 17 additions and 1 deletions
|
|
@ -427,7 +427,22 @@ class SQLiteSearch(ABC):
|
|||
if not values: # Skip empty filters
|
||||
continue
|
||||
|
||||
if isinstance(values, list):
|
||||
# Check if this is a LIKE filter (list with 'LIKE' operator)
|
||||
if isinstance(values, list) and len(values) == 2 and values[0] == "LIKE":
|
||||
# Handle LIKE filters in format ['LIKE', tag_filters]
|
||||
like_values = values[1]
|
||||
if isinstance(like_values, list):
|
||||
# Multiple LIKE conditions (OR them together)
|
||||
like_conditions = []
|
||||
for like_val in like_values:
|
||||
like_conditions.append(f"{field} LIKE ?")
|
||||
filter_params.append(f"%{like_val}%")
|
||||
filter_conditions.append(f"({' OR '.join(like_conditions)})")
|
||||
else:
|
||||
# Single LIKE condition
|
||||
filter_conditions.append(f"{field} LIKE ?")
|
||||
filter_params.append(f"%{like_values}%")
|
||||
elif isinstance(values, list):
|
||||
if len(values) == 1:
|
||||
filter_conditions.append(f"{field} = ?")
|
||||
filter_params.append(values[0])
|
||||
|
|
@ -507,6 +522,7 @@ class SQLiteSearch(ABC):
|
|||
ORDER BY bm25_score
|
||||
LIMIT ?
|
||||
"""
|
||||
print(sql)
|
||||
return self.sql(sql, params, read_only=True)
|
||||
|
||||
def _process_search_results(self, raw_results, query):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue