2012-02-05 109 views
2

我使用django和haystack with whoosh和我有幾個關於它們的問題:如何在Haystack和Whoosh中搜索所有django模型?

1)當我嘗試搜索smth時,我應該選擇所有已經在whoosh中編制索引的模型。我如何設置系統以在任何地方(在所有型號上)查找值?

2)我有搜索輸入框,但它不適用乾草堆網址。所以,我的模板(我使用自舉):

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

而且我在教程中有搜索網址,如:

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

怎麼會說出這樣的形式immidiately開始搜索和發送數據到草垛?

回答

0

您需要在項目根目錄的search_index.py文件中創建RealTimeSearchIndex類,並使用乾草堆註冊這些索引。

然後,您需要使用haystack manage.py reindex命令重新索引您的數據。

然後,您需要爲haystack生成的搜索頁面提供一個模板。

繼續閱讀文檔,它都在那裏。

0

對於部分2,

,因爲草堆裏使用?Q =獲得查詢,你應該把名字= 「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。