django-pgindex 0.8.1
Search for Django and PostgreSQL
Search for Django and PostgreSQL.
Requirements
- Django >= 1.1
- django-stringfield >= 0.1.5
- django-cerial >= 0.0.2
Installation
First install the package from pypi using pip:
pip install django-pgindex
Then make pgindex an app in your INSTALLED_APPS:
INSTALLED_APPS = (
...
'pgindex',
...
)
Sync your database:
python manage.py syncdb
Done.
Usage
Create and Index class and register it to your model, much like registering an admin class to your model. Example:
# 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_description(self):
return self.obj.content
def get_data(self):
return self.obj
def get_vectors(self):
return (
Vector(self.obj.title, weight='A'),
Vector(self.obj.content, weight='B'),
)
To search simply use the pgindex.search method which returns a queryset from the pgindex.models.Index model:
from pgindex import search
index_queryset = search('foo')
See tests for examples.
pgindex.IndexBase methods
get_title()
This should return the title of the indexed object.
get_description()
This should return the description of the indexed object.
get_url()
This should return the url of the indexed object.
get_data()
You can return additional data that will be stored in the index field here, this value will be pickled and depickled.
get_published()
If this returns False and index will not be created
get_start_publish()
Can return a datetime.datetime which is the time when the index will be used. Returning None means that it will always be used.
get_end_publish()
Can return a datetime.datetime which is the time for the index expiration. Returning None means that it will never expire.
get_vectors()
This method needs to return a list or tuple of pgindex.Vector instances. This in turn is the base for the text search column.
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| django-pgindex-0.8.1.tar.gz (md5) | Source | 2011-08-10 | 7KB | 276 | |
- Author: Mikko Hellsing
- Home Page: https://github.com/aino/django-pgindex
- License: BSD
- Platform: any
- Categories
- Package Index Owner: aino
- DOAP record: django-pgindex-0.8.1.xml
