在构建搜索引擎的冒险中,我开始使用Whoosh。教程和基于Web的材料都很好。 Stackoverflow也有相当大的问题和答案。最初的实验看起来很顺利。但我想处理位于我机器各个部分的文件。我发现“来自whoosh.filedb.filestore导入FileStorage”,但我正在寻找一个简单的例子来开始。 我尝试了如下的东西,它可能会给出一些结果,但它会好吗? 如果有人可以请求查看并更正?
>>> txt_file1=open("/python27/whooshtext1.txt","r").read()
>>> txt_file2=open("/python27/whooshtext3.txt","r").read()
>>> writer.add_document(title=u"First document", path= unicode("indexdir"+os.sep+"a"),content=u"txt_file1")
>>> writer.add_document(title=u"Second document", path= unicode("indexdir"+os.sep+"b"),content=u"txt_file2")
>>> writer.commit()
>>> with ix.searcher() as searcher:
query = QueryParser("content", ix.schema).parse("flood")
results = searcher.search(query)
print results
for result in results:
print result
<Top 0 Results for Term('content', u'flood') runtime=0.000124042337439>
>>>
答案 0 :(得分:0)
您应该在writer.add_document
:content=txt_file1.read()
而不是content=u"txt_file1"
中传递文本文件的内容而不是其名称。第二个文件也一样。
确保“&#34; flood&#34;存在于其中一个文件中。