如何在所有django模型中搜索Haystack和Whoosh



我在使用django和haystack时发出嗖嗖声,我对它们有几个问题:

1) 当我尝试搜索smth时,我应该选择所有以whoosh索引的模型。我如何设置系统以在各处(所有模型上)查找值?

2) 我有搜索输入框,但它不适用于草堆URL。所以我的模板(我使用引导程序):

<form  method="get" action="/search/" class="navbar-search pull-left">
   <input type="text" class="search-query" placeholder="Search">
</form>

我有像教程中那样的搜索网址:

(r'^search/', include('haystack.urls')),

如何说这个表单立即开始搜索并将数据发送到草堆?

您需要在项目根目录中的search_index.py文件中创建RealTimeSearchIndex类,并使用haystack注册这些索引。

然后,您需要使用haystack manage.py reindex命令重新索引数据。

然后,您需要为haystack将生成的搜索页面提供一个模板。

继续阅读文档,一切都在那里。

对于第2部分,

既然干草堆有用?q=要获得查询,您应该在输入字段中输入name="q"

<form  method="get" action="/search/" class="navbar-search pull-left">
    <input name="q" type="text" class="search-query" placeholder="Search">
</form>

对于第1部分,

您可以将searchindexes.py放入每个模型文件夹中。不确定是否有更有效的方法。如果您想让用户选择搜索哪些模型,可以使用ModelSearchView。

最新更新