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],  | 
