如何通过Whoosh中的路径从索引中删除文档

时间:2019-05-29 09:34:39

标签: python whoosh

首先,我将文档添加到索引中,如下所示:

writer.add_document(title=doc_path.split(os.sep)[-1], path=doc_path, content=text, textdata=text)

然后我只需要通过路径删除索引中的一个即可。文档说很少有底层方法可以做到这一点:

  

delete_by_term(字段名称,termtext)

     

删除给定(索引)字段包含以下内容的所有文档:   给定的期限。这对ID或KEYWORD字段最有用。

     

delete_by_query(查询)

     

删除与给定查询匹配的所有文档。

但是我找不到适合我的非常方便的方法,我可以在其中指定文档的路径并将其删除。有一些底层方法,我可以指定内部doc_number,我应该以某种方式获取。 谁能给我建议完成任务更好吗?

1 个答案:

答案 0 :(得分:0)

ix = open_dir('/my_index_dir_path/..')
writer = ix.writer()
writer.delete_by_term('path', doc_path)
writer.commit()
  

delete_by_term

方法完全可以满足我的需求。请注意,第一个参数是文本字符串“ path”,它们是实际路径。我的错误是放置实际路径而不是属性名称。