我使用hashstack和whoosh來搜索我公司的代碼,每個索引每個文件。大多數時候,它工作正常。但是,當我使用'port'這樣的常見關鍵字進行搜索時,seaching需要5分鐘才能完成,而CPU是100%。我認爲這是因爲結果數量太大(關鍵字端口5000+)。事實上,我不需要那麼多的結果,大概100左右就夠了。我如何設置限制?或超時也行。如何限制搜索結果數量或在乾草堆中設置超時時間?
2
A
回答
0
看看django's pagination - 如果你實現它,它將只顯示每頁的結果的子集,不應該使用太多的CPU。也就是說,如果你的搜索索引中有成千上萬的項目,你可能想嘗試使用另一個後端 - 我發現對於小型索引(最多約1000個項目)非常理想,但稍微慢一點。
2
是的,你可以,沒有什麼特別的關於默認的SearchView類及其方法。下面是一個例子如何做:
yourapp網址
# Django specific
from django.conf.urls import *
# App specific
from yourapp.search.views import AdvancedSearchView
urlpatterns = patterns('yourapp.views',
url(r'^$', AdvancedSearchView(), name='yourapp_search'),
)
意見
# Django specific
from django.conf import settings
# App specific
from haystack.views import SearchView
LIMIT = getattr(settings, 'HAYSTACK_MAX_RESULTS', 50)
class AdvancedSearchView(SearchView):
def get_results(self):
return self.form.search()[:LIMIT]
項目的URL
urlpatterns += patterns('',
url(r'^search/$', include('yourapp.search.urls'))
)
您可以覆蓋全局中的設置:
settings.py
HAYSTACK_MAX_RESULTS = 15
0
也許你應該看看time limited searches。結合有限的收集器實例,您應該能夠解決您的問題。
相關問題
- 1. 在乾草堆中的MySQL搜索鍵
- 2. 如何在php中設置不同的超時時間限制?
- 3. 乾草堆搜索非主要字段
- 4. Angular 2:如何限制ng2-completer中搜索結果的數量?
- 5. django乾草堆沒有結果solr
- 6. 在乾草堆中添加CharField到搜索索引
- 7. 用elasticsearch測試django乾草堆時的非確定性結果
- 8. 我無法配置乾草堆彈性搜索在Android的搜索
- 9. 如何設置計時器來檢索Twitter搜索結果?
- 10. 不能匹配乾草堆彈性搜索中的數字
- 11. 更改django中的測試設置(乾草堆搜索引擎具體)
- 12. 硒超時?如何設置超時限制?
- 13. 在Ldap搜索設置方法超時
- 14. 限制在PHP中即時搜索的結果?
- 15. 如何從單個查詢中獲得兩個不同的搜索結果在django乾草堆中與solr
- 16. 我想在所有頁面中包含乾草堆搜索
- 17. 在乾草堆中搜索不同的模型whoosh
- 18. 通過乾草堆索引mongodb數據
- 19. Markligic Cts中超出的時間限制:搜索
- 20. 如何從網格搜索結果確定時期超參數
- 21. 如何設置時間限制
- 22. 如何使用db查詢過濾乾草堆結果
- 23. 如何限制PHP包含等待結果的時間量?
- 24. Django乾草堆與彈性搜索,索引問題
- 25. 用乾草堆和elasticsearch搜索口音在Django
- 26. 如何在彈性搜索中搜索Go按時間框架篩選結果
- 27. 在Jekyll搜索中限制搜索結果
- 28. 如何設置Socket.ConnectAsync的超時時間?
- 29. Libtorrent如何設置超時時間?
- 30. 如何設置OCILogon2的超時時間?
我知道Django的分頁,我用它在py應用程序。問題是,在我能顯示我的結果之前,whooh需要太多時間來查詢它們。我真正想要的是這樣的:results = foo.search(max_result_count = 100)。只要它達到第100個結果,我就想讓他回來。但現在,它繼續得到所有結果大至5000+。 – guoqiao 2012-03-29 01:42:01
好的,我明白你的意思了 - 這甚至可能與Whoosh?我相信,如果您使用草垛來請求一部分結果,那麼後端可以以最有效的方式來完成。可能需要查看不同的後端 - Xapian與whoosh類似,但我認爲它會更有效地處理這種情況。 – Greg 2012-04-11 23:56:39
如果您想根據後端執行此操作,您將不得不深入Haystack的邏輯,但我添加了一個簡單覆蓋默認SearchView的示例。 – 2012-12-20 15:00:27