如何使用Haystack和Whoosh搜索所有django模型?

时间:2012-02-05 17:09:22

标签: django search django-haystack whoosh

我使用django和haystack嗖的一声,我有几个问题:

1)当我尝试搜索smth时,我应该选择所有已经编入索引的模型。如何设置系统以便在任何地方找到值(在所有型号上)?

2)我有搜索输入框,但它不适用于haystack网址。所以我的模板(我使用bootstrap):

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

我在教程中有搜索网址:

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

继续阅读文档,它就在那里。

答案 1 :(得分:0)

第2部分,

因为haystack使用?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部分,

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