好的,這是我所做的以確定問題是在Whoosh還是Haystack中。我打開Django的外殼併爲不顯示在草堆SEARCHQUERY API搜索了術語進行搜索:
./manage.py shell
$>> import whoosh
$>> from whoosh.query import *
$>> from whoosh.index import open_dir
$>> ix = open_dir('/home/somedir/my_project/haystack/whoosh/')
$>> ix.schema
<Schema: ['branch', 'category', 'coordinator', 'date_event', 'designation','details', 'django_ct', 'django_id'> 'name', 'organisation', 'overview','text', 'title']>
$>> searcher = ix.searcher()
$>> res = searcher.search(Term('text',u'akshit'))
$>> print res
<Top 1 Results for Term('text', 'akshit') runtime=0.000741004943848>
$>> print res['0']['name']
u'Akshit Khurana'
所以你看,嗖正確索引的所有數據。所以,現在我嘗試SEARCHQUERY API
./manage.py shell
$>> from haystack.query import SearchQuerySet
$>> sqs = SearchQuerySet().filter(content='akshit')
$>> sqs
$>> []
所以,我意識到,我必須看看乾草堆庫的whoosh_backend.py文件,看看發生了什麼。打開 - haystack.backends.whoosh_backend around line number 345
'''Uncomment these two lines because the raw_results set becomes empty after the filter call for some queries''
if narrowed_results:
raw_results.filter(narrowed_results)
到
#if narrowed_results:
#raw_results.filter(narrowed_results)
然後它的作品。 SearchQueryAPI按預期返回測試查詢的一個結果。網絡搜索工作,但我想知道這裏乾草堆的問題是什麼。
嘿Vikesh,你有沒有想過出了什麼問題?我有同樣的問題。 – hekevintran 2012-07-20 19:36:02
不是真的,我很抱歉。找不到進一步調查的時間,但如果您只想解決問題,可以查看上面的答案。 – Vikesh 2012-07-23 13:24:51
我有同樣的問題,除了它在早上工作,而不是在下午工作,嘗試切換到XAPIAN並返回記錄罰款。與whoosh有關。 – 2013-08-12 03:05:56