搜索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 |