django-fts:如何为psql创建索引

时间:2010-10-06 07:33:38

标签: django postgresql full-text-search

我正在调查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 个答案:

答案 0 :(得分:2)

你需要:

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

(假设你想要英文索引)。请参阅http://www.postgresql.org/docs/9.0/static/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX

文档中的第12.2.2节