diff options
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models_common.py | 9 | ||||
-rw-r--r-- | ishtar_common/views_item.py | 7 |
2 files changed, 11 insertions, 5 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index 13447a4d3..bb786d48d 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -1013,6 +1013,7 @@ class FullSearch(models.Model): SEPS = [" ", "-", "/"] values = [] # split ID terms + # MNP 1995-1-1/42 -> ("MNP", "1995", "1", "42") for idx, sep in enumerate(SEPS): if not idx: values = value.split(sep) @@ -1021,9 +1022,13 @@ class FullSearch(models.Model): for val in values: new_values += val.split(sep) values = new_values + # stock also ID with separators + # MNP 1995-1-1 -> ("MNP", "1995-1-1") + for v in value.split(" "): + if v not in values: + values.append(v) + values = list(set(values)) for val in values: - if len(val) < 2: - continue val = val.replace("'", "").lower() result.append(f"'{val}':1") return result diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index 82548932f..444a157e4 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -1031,12 +1031,13 @@ def _search_manage_search_vector( if search_query: if "extras" not in dct: dct["extras"] = [] + table = model._meta.db_table dct["extras"].append( { "where": [ - f"{model._meta.db_table}.search_vector @@ (to_tsquery(%s, %s)) = true OR " + - f"{model._meta.db_table}.search_vector @@ (to_tsquery('simple', %s)) = true OR " - f"{model._meta.db_table}.search_vector::tsvector @@ %s::tsquery = true" + f"{table}.search_vector @@ (to_tsquery(%s, %s)) = true OR " + f"{table}.search_vector @@ (to_tsquery('simple', %s)) = true OR " + f"{table}.search_vector::tsvector @@ %s::tsquery = true" ], "params": [settings.ISHTAR_SEARCH_LANGUAGE, search_query, search_query, search_query], |