文档的增删改(上)

  在Lucene中,可以对文档(Document)进行添加(增)、删除(删)、更新(改)的操作,而每一种操作各自又有多个功能的扩展。

文档的增删改应用

添加文档

  该小结介绍增删改的简单使用方法。 图1:

图2:

  Lucene允许通过IndexWriter对象添加一篇文档或者多篇文档。

删除文档

图3:

  删除文档的操作可以根据Term、Query进行删除:

更新文档

图4:

图5:

  允许更新一篇或多篇文档,更新文档是一个先删除、后添加的过程。

图6:

  Lucene7.5.0版本中提供了三种更新文档的DocValues域的方法。

图7:

  软删除(softDelete)也属于文档的更新,支持添加一篇或多篇文档,图4及图5中的更新文档是 先删除、后添加的过程,而软删除则是先标记、后添加

  软删除的概念会在后面的文章中详细介绍。

文档的增删改原理

  上一节中介绍文档的增删改的方法即:

  添加/更新一篇文档操作:

  添加/更新多篇文档操作:

  删除文档操作:

  更新DocValues域操作:

文档的增删改流程图

  单文档跟多文档的添加/更新操作的流程图略有不同:

单文档的增删改流程图

图8:

点击查看大图

多文档的增删改流程图

图9:

点击查看大图

  从图8跟图9的流程图中可以看出,尽管有多种增删改的操作,但其相同的逻辑部分重合度是很高的,另外没有列出删除出所有文档的操作,即deleteAll( )。该操作暂时不作介绍,原因是一方面这个操作在实际业务中几乎不会使用,另一方该操作的流程完全不同于其他的增删改操作,展开介绍则需要另外开一章节,感觉没这个必要。

结语

  本章节介绍了文档增删改的应用及其流程图,由于流程图的每一个步骤展开介绍会使得本篇文章篇幅过大,故在下一篇文章中介绍。

点击下载附件