Использование в Django индекса GIN, который был создан в postgreSQL
Я создал модель в Django.
class MyModel(models.Model):
features = TextField(blank=True, default='')
Существует несколько возможных способов хранения данных в поле feature
. Некоторые примеры приведены ниже.
feature1;feature2
feature1, feature2
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.
. Как я могу использовать созданный индекс?