Skip to main content

A super simple Django-whoosh search engine

Project description

Djoosh is a very simple search engine for your Django projects.

WARNING: This is currently under heavy development, so use at your work risk!

Installation

  1. Install with pip:

    pip install djoosh

  2. Add djoosh to INSTALLED_APPS in your settings.py:

    INSTALLED_APPS = (
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.sites',
            ...
            'djoosh',
    )
  3. In your models.py add:

    from djoosh import SearchMixin
    
    ...
    
    class BlogPost(models.Model, SearchMixin):
            ...

    Note SearchMixin in the parents for MyModel. Just add it to any model that you want to search.

  4. When you’re done, run python manage.py search rebuild

  5. That’s it! You can now search your blog posts using BlogPost.search.query('some query'),

    For example you can create a view like this:

    def search(request):
    
            query = request.GET.get('q', '')
    
            posts = BlogPost.search.query(query)
    
            return render_to_response('search_posts.html',
                                      {'posts': posts, 'query': query})

    … and your template can be:

    <form action="/search" method="get">
            <input type="text" name="q" value="{{ query }}" />
            <input type="submit" value="Search Blogs" />
    </form>
    
    <h1>Search Results</h1>
    {% for post in posts %}
            <h2>{{ post.title }}</h2>
            <p>{{ post.content }}</p>
    {% endfor %}

Fine-Tuning

Coming soon…

For the impatient:

blog/search.py:

from blog import BlogPost
from djoosh import site, SearchModel

class BlogPostSearch(SearchModel):
        model = BlogPost
        fields = ('title', 'tags')
        keywords = ('tags',)
        pk = 'id'

site.register(BlogPost, BlogPostSearch)

You may also have a look at djoosh.loading, particularly site and SearchModel.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djoosh-0.1.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file djoosh-0.1.tar.gz.

File metadata

  • Download URL: djoosh-0.1.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for djoosh-0.1.tar.gz
Algorithm Hash digest
SHA256 7f5e1edbd0cbab0f9788c6074a11d23707722e59341184efcc86cc458a1f45aa
MD5 a1d6498581854e7ee76e82f47349ee13
BLAKE2b-256 6675202745c62d0d42f522912f260ace523998281926f184ff99b6f4401814bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page