草堆呼呼没有索引所有的东西

2024-10-04 01:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文


我正在使用Haystack v1.0和Whoosh v1.8.1为我的网站建立一个定制的搜索引擎。一切都运行得很好,但问题是我的索引模型中的许多条目都没有结果。在

例如,我有四个注册模特——会员、嘉宾、活动、赞助商。从django shell重建索引时,会发生以下情况:

一/管理.py重建索引

Indexing 26 members.  
Indexing 3 events.
Indexing <x> guests.  
Indexing <y> sponsors.  

但是在运行searchqueryapi命令和搜索页面时,我无法搜索到一半的成员名称。让我难以捉摸的是,当我可以搜索14-15个成员时,为什么不搜索其他成员呢。我的模板*_文本.txt*文件应该是正确的,因为半数成员的索引正确。在

你可以试试这个
http://www.edciitr.com/search/?q=x
x=Vikesh返回1个结果(如预期)
x=Akshit没有返回结果(问题!)在

“Akshit”和“Vikesh”值在重建索引之前都存在。这是我要搜索的所有26个成员的列表-http://www.edciitr.com/contact/


Tags: 模型comhttp网站www条目成员搜索引擎
2条回答

我有类似的症状,这是我问的问题Django django-haystack cannot import CategoryBase from django-categories on the first run

可能也和你的问题有关。在

好吧,所以我做了些什么来找出问题是在呼呼还是在干草堆里。我打开django shell并搜索haystack SearchQuery API search中没有显示的术语:

./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'   

所以你看,Whoosh正确地索引了所有的数据。所以,现在我来试试searchqueryapi

^{pr2}$

所以,我意识到我必须检查一下呼呼声_后端.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按预期为测试查询返回一个结果。网络搜索工作,但我想知道是什么问题与海斯塔克这里。在

相关问题 更多 >