Использование в Django индекса GIN, который был создан в postgreSQL

Я создал модель в Django.

class MyModel(models.Model):
    features = TextField(blank=True, default='')

Существует несколько возможных способов хранения данных в поле feature. Некоторые примеры приведены ниже.

  1. feature1;feature2
  2. feature1, feature2
  3. feature1,feature2

И так далее. Я создал GIN-индекс для этого поля. Это код PostgreSQL, который я использовал внутри migrations.RunSQL.

CREATE INDEX features_search_idx ON "mymodel" USING gin (regexp_split_to_array("mymodel"."features", E'[,;\\s]+'));

Миграция сработала, и мне удалось найти этот индекс, используя, например, \di+ mymodel_features_search_idx.

Теперь я хочу использовать этот созданный индекс для фильтрации моего набора запросов. Я думал, что что-то вроде приведенного ниже кода будет работать

MyModel.objects.annotate(F('features_search_idx')).filter(features_search_idx__in=['Feature1', 'Feature2', 'Feature3'].count()

К сожалению, произошла ошибка django.core.exceptions.FieldError: Cannot resolve keyword 'feature_search_idx' into field.. Как я могу использовать созданный индекс?

Вернуться на верх