一个超级简单的django-whoosh搜索引擎

djoosh的Python项目详细描述


djoosh是一个非常简单的django项目搜索引擎。

警告:这是目前正在沉重的发展,所以使用你的工作风险!

安装

  1. 使用pip安装:

    ^{tt1}$

  2. 设置中添加djoosh已安装的应用程序中。py

    INSTALLED_APPS = (
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.sites',
            ...
            'djoosh',
    )
    
  3. 在您的模型中。py添加:

    from djoosh import SearchMixin
    
    ...
    
    class BlogPost(models.Model, SearchMixin):
            ...
    
    <> > > CysMixin >< CIT> MyMeult。只需将其添加到任何模型 你想搜索的。

  4. 完成后,运行python manage.py search rebuild

  5. 就这样!现在可以使用 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,特别是sitesearchmodel

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何创建单例枚举映射?   java如何在Android视频视图中添加Cookie(标题)以支持旧版本的Android,至少到jellybean为止   Java Swing从单击中获取X,Y   java不兼容类型:int不能转换为数组中的字符串   用于写入文件的java相对文件路径   在Java中使用COLT求解线性系统的性能   java谁生成了在服务存在的进程中运行的主线程和循环器?   JAVARuntimeException:java。ClassCastException:java。lang.Long不能转换为java。串   java检查数据库连接处于活动状态   java Spring多对多未保存在表单提交上   java向Maven添加系统依赖项   爪哇和C++中迭代器的区别是什么?   java Getting“类型不匹配:在实例化映射列表时,无法将ArrayList<HashMap<String,String>>转换为List<Map<String,String>>”   javavaadin表容器并发修改   java错误膨胀类安卓。支持v7。小装置。FitWindowsFrameLayout   java如何在没有打开GL ES的情况下设置对象动画?