搜寻恩贾梅纳和博士后
django-pgindex的Python项目详细描述
搜索django和postgresql。
要求
- django>;=1.1
- django stringfield=0.1.5
- Django Cerial=0.0.2
安装
首先使用pip从pypi安装包:
pip install django-pgindex
然后在INSTALLED_APPS中创建pgindex应用程序:
INSTALLED_APPS = ( ... 'pgindex', ... )
同步数据库:
python manage.py syncdb
完成。
用法
创建并索引类并将其注册到模型中,这与注册 你的模型的管理类。示例:
# 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'), )
要搜索,只需使用返回queryset的pgindex.search方法 来自pgindex.models.Index模型:
from pgindex import search index_queryset = search('foo')
有关示例,请参见测试
pgindex.IndexBase方法
获取标题()
这将返回索引对象的标题。
获取描述()
这将返回索引对象的描述。
获取URL()
这将返回索引对象的url。
获取数据()
您可以在此返回将存储在索引字段中的其他数据 价值将被腌制和去除
获取发布()
如果返回False,则不会创建索引
获取开始发布(
可以返回datetime.datetime,这是将使用索引的时间。 返回None意味着将始终使用它。
get_end_publish()
可以返回datetime.datetime,这是索引过期的时间。 返回None意味着它永远不会过期。
获取向量()
此方法需要返回^{tt10}的列表或元组$ 实例。这又是文本搜索列的基础