如何使用 Haystack 和 Whoosh 搜索所有 django 模型?
我正在使用 django 和 haystack 与 whoosh,我对它们有几个问题:
1)当我尝试搜索时,我应该选择在 whoosh 中索引的所有模型。如何设置系统以查找各处值(在所有型号上)?
2)我有搜索输入框,但它不适用于 haystack 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')),
如何说这个表单立即开始搜索并将数据发送到干草堆?
I'm using django and haystack with whoosh and I have several questions about them:
1) When I attempt to search smth I should select all models which has indexed in whoosh. How can I set system to find values everywhere (on all models)?
2) I have search input box but it doesn't work with haystack urls. So my template (I'm using bootstrap):
<form method="get" action="/search/" class="navbar-search pull-left">
<input type="text" class="search-query" placeholder="Search">
</form>
And I have search url like in tutorial:
(r'^search/', include('haystack.urls')),
How say this form to start search immidiately and sends data to haystack?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要在项目根目录的 search_index.py 文件中创建 RealTimeSearchIndex 类,并将这些索引注册到 haystack。
然后,您需要使用 haystack
manage.py reindex
命令重新索引数据。然后您需要为 haystack 将生成的搜索页面提供一个模板。
继续阅读文档,一切都在那里。
You need to create RealTimeSearchIndex classes in your search_index.py file in the project root, and register these indexes with haystack.
Then you need to reindex your data using the haystack
manage.py reindex
command.Then you need to provide a template for the search page that haystack will generate.
Keep reading the docs, it's all there.
对于第 2 部分,
由于 haystack 使用 ?q= 来获取查询,因此您应该将 name="q" 放入输入字段中,
对于第 1 部分,
您可以将 search_indexes.py 放入每个模型文件夹中。不确定是否有更有效的方法。如果您想让用户选择搜索哪些模型,您可以使用 ModelSearchView。
For part 2,
since haystack uses ?q= to get queries, you should put name="q" into the input field,
For part 1,
you can put in search_indexes.py into each model folder. Not sure if there is more efficient method. You can use ModelSearchView if you want to give users a choice to search which models.