好的,这是我所做的以确定问题是在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