django-fts: как создать индексы для psql - PullRequest
1 голос
/ 06 октября 2010

Я изучаю, как работает приложение http://code.google.com/p/django-fts/.Я пытаюсь настроить psql FTS для работы с приложением, но не могу понять, как правильно создать индекс.

Не понимаю, как создать индекс GIN, как это было указано в документе.

Моя модель выглядит следующим образом:

class Product(fts.SearchableModel):
    name =  models.CharField(max_length = 1000)
    description = models.TextField(blank = True)

в базе данных у меня есть таблица store_product

Но когда я запускаю следующее в моем psql, у меня появляется ошибка:

base=# CREATE INDEX "store_product_index" ON "store_product" USING gin("name");
ERROR:  data type character varying has no default operator class for access method "gin"
HINT:  You must specify an operator class for the index or define a default operator class for the data type.

Можете ли вы помочь мне понять, что здесь не так?

1 Ответ

2 голосов
/ 06 октября 2010

Вам нужно:

CREATE INDEX "store_product_index" ON "store_product" USING gin(to_tsvector('english', "name"));

(при условии, что вы хотите индекс на английском языке).См. Раздел 12.2.2 в документации по http://www.postgresql.org/docs/9.0/static/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX

...