A basic search application for Django.
Python
Latest commit 91b4fd9 Aug 2, 2012 @pigmonkey PEP8
Permalink
Failed to load latest commit information.
simplesearch PEP8 Apr 5, 2012
MANIFEST.in Updating setup.py Jul 20, 2012
README.md Now available on PyPI Jul 20, 2012
setup.py PEP8 Aug 2, 2012

README.md

django-simplesearch

A reusable Django application for simple searching, based on Julien Phalip's original code.

How it Works

A string of search terms are passed to the get_query function, along with a list of the model fields to search. These terms are normalized by normalize_query, which splits the query string into individual keyword, keeping quoted words together and removing stop words. The get_query function then returns a Q object which may be used to search the given fields for the given term.

Installation

django-simplesearch is available on PyPI and can be installed with PIP.

pip install django-simplesearch

Alternatively, you may download the source and install it.

python setup.py install

Setup

Add simplesearch to your settings.INSTALLED_APPS.

Usage

django-simplesearch was created to search blog posts. To search a model Post in the fields title and body based on a search query submitted by a form to HTTP GET, you might do something like this:

if 'q' in request.GET:
    query_string = request.GET['q']
    entry_query = get_query(query_string, ['title', 'body'])
    results = Post.objects.published().filter(entry_query).distinct()

In this case, the Post objects that matched the search query is stored within results.