跳转到主要内容

搜索Django和PostgreSQL

项目描述

搜索Django和PostgreSQL。

需求

  • Django >= 1.1

  • django-stringfield >= 0.1.5

  • django-cerial >= 0.0.2

安装

首先使用pip从pypi安装软件包

pip install django-pgindex

然后将pgindex添加到您的INSTALLED_APPS

INSTALLED_APPS = (
    ...
    'pgindex',
    ...
)

同步您的数据库

python manage.py syncdb

完成。

使用方法

创建和索引类并将其注册到您的模型中,就像将admin类注册到您的模型中一样。示例

# models.py
from django.db import models
from .index import ItemIndex
from pgindex import register

class Item(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

    def get_absolute_url(self):
        return '/item/'

register(Item, ItemIndex)


# index.py
from pgindex import IndexBase, Vector

class ItemIndex(IndexBase):
    def get_title(self):
        return self.obj.title

    def get_description(self):
        return self.obj.content

    def get_vectors(self):
        return (
            Vector(self.obj.title, weight='A'),
            Vector(self.obj.content, weight='B'),
        )

要搜索,请使用pgindex.search方法,该方法从pgindex.models.Index模型返回查询集

from pgindex import search

index_queryset = search('foo')

请参见测试示例。

pgindex.IndexBase方法

get_title()

此方法应返回索引对象的标题。

get_description()

此方法应返回索引对象的描述。

get_url()

此方法应返回索引对象的URL。

get_data()

您可以在该方法中返回要存储在索引字段中的其他数据,此值将被序列化和反序列化。

get_publish()

如果此方法返回False,则不会创建索引

get_start_publish()

可以返回一个datetime.datetime,表示索引将被使用的时间。返回None表示它将始终被使用。

get_end_publish()

可以返回一个datetime.datetime,表示索引到期的时间。返回None表示它将永远不会过期。

get_vectors()

此方法需要返回一个包含pgindex.Vector实例的列表或元组。这反过来又是文本搜索列的基础。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

django-pgindex-0.8.2.tar.gz (7.0 kB 查看哈希值)

上传时间

由以下支持