我在使用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。