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

发布于 2025-01-02 06:27:22 字数 483 浏览 1 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

许久 2025-01-09 06:27:22

您需要在项目根目录的 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.

呆橘 2025-01-09 06:27:22

对于第 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。

For part 2,

since haystack uses ?q= to get queries, you should put name="q" into the input field,

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文