一个超级简单的django-whoosh搜索引擎
djoosh的Python项目详细描述
djoosh是一个非常简单的django项目搜索引擎。
警告:这是目前正在沉重的发展,所以使用你的工作风险!
安装
使用pip安装:
^{tt1}$
在设置中添加djoosh到已安装的应用程序中。py:
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', ... 'djoosh', )
在您的模型中。py添加:
from djoosh import SearchMixin ... class BlogPost(models.Model, SearchMixin): ...
<> > > CysMixin >< CIT> MyMeult。只需将其添加到任何模型 你想搜索的。完成后,运行python manage.py search rebuild
就这样!现在可以使用 BlogPost.search.query('some query'),
例如,您可以创建这样的视图:
def search(request): query = request.GET.get('q', '') posts = BlogPost.search.query(query) return render_to_response('search_posts.html', {'posts': posts, 'query': query})
…您的模板可以是:
<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 %}
微调
即将推出…
对于不耐烦的人:
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)
您还可以查看djoosh.loading,特别是site和searchmodel。