在 results() 对象中显示所有命中
Show all hits in results() object Whoosh
我是 python 的新手,所以可能是因为我很难 打印搜索后返回的所有匹配项 。
这是我的代码:
from whoosh.qparser import QueryParser
with ix.searcher() as searcher:
query = QueryParser("title", ix.schema).parse("hd")
results = searcher.search(query)
print results[0]
print results
print len(results), 'resultados'
这是输出:
<Hit {'brand': u'Best Buy', 'title': u'best buy easy snap hd', 'superpadre': u'audio foto video', 'familia': u'videocamaras', 'detalle_short': u'Easy Snap HD es una pequena videocamara con grabacion en alta definicion ideada para poder llevarla a cualquier lugar. Su ligero peso y su visor TFT LCD de 2,7 con'}>
<Top 10 Results for Term('title', u'hd') runtime=0.000622987747192>
18 resultados
看起来你已经在正确的轨道上了。但实际上可能只有一个结果。
根据whoosh docs,呼叫:
len(结果)
照原样,给出搜索匹配的总数。
因此,如果结果在此处显示“1 个结果”,则很可能所有这些都已编入索引。
要打印所有结果,您应该只遍历对象 results
:
for r in results:
print r
print "title :", r["title"] # print the title of each result.
已接受的答案具有误导性;它将为您提供搜索中 "limit" 参数限制的命中数。
要修改该限制,请使用:
results = searcher.search(query, limit=None)
用于搜索。
我是 python 的新手,所以可能是因为我很难 打印搜索后返回的所有匹配项 。
这是我的代码:
from whoosh.qparser import QueryParser
with ix.searcher() as searcher:
query = QueryParser("title", ix.schema).parse("hd")
results = searcher.search(query)
print results[0]
print results
print len(results), 'resultados'
这是输出:
<Hit {'brand': u'Best Buy', 'title': u'best buy easy snap hd', 'superpadre': u'audio foto video', 'familia': u'videocamaras', 'detalle_short': u'Easy Snap HD es una pequena videocamara con grabacion en alta definicion ideada para poder llevarla a cualquier lugar. Su ligero peso y su visor TFT LCD de 2,7 con'}>
<Top 10 Results for Term('title', u'hd') runtime=0.000622987747192>
18 resultados
看起来你已经在正确的轨道上了。但实际上可能只有一个结果。
根据whoosh docs,呼叫:
len(结果)
照原样,给出搜索匹配的总数。
因此,如果结果在此处显示“1 个结果”,则很可能所有这些都已编入索引。
要打印所有结果,您应该只遍历对象 results
:
for r in results:
print r
print "title :", r["title"] # print the title of each result.
已接受的答案具有误导性;它将为您提供搜索中 "limit" 参数限制的命中数。
要修改该限制,请使用:
results = searcher.search(query, limit=None)
用于搜索。