搜索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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 77ea16c55deaf07e3ef53b8577b824b53cecd4fa90bc41dc8ac078d5faad58df |
|
MD5 | 5f5ba7faa869d289cb2ede9f760515dc |
|
BLAKE2b-256 | 9ae07534fbdc6d51e6ba67026c543860e88ad88fc08017eb49d29a38563b16ee |