关于java:Delete documentation using lucene 4 and retrieve all docIds of deleted docs | 珊瑚贝

Delete documents using lucene 4 and retrieve all docIds of deleted docs


我正在使用 Lucene 4 来保存我的数据。我现在面临的问题如下:

如何从索引中删除文档,然后检索被删除文档的docIds?

这是我用来删除文档的方法:

1
2
3
Query query = new BooleanQuery();

indexWriter.deleteDocuments(query);

但是一旦调用了这个方法,我还没有找到一种方法(方法或回调)来获取已删除的文档(及其字段)。

有人知道怎么做吗?


我认为你不能一次通话。

由于 Lucene 删除不会立即发生(额外的 commit() 是必需的),返回已删除的文档 ID 会有点模棱两可。如果您查看 delete 方法,它实际上只是将作业添加到删除队列之一。也就是说,commit() 也不返回任何与此相关的内容;-(

无论如何,我能想到的唯一方法是运行您的 query,收集文档/文档 ID,然后运行 ??deleteDocuments(query)。您可能会遇到一些重叠(例如,如果另一个线程会删除相同的文档),但这是不可避免的,因为 commit() 阶段。

  • 感谢您的回答!看起来查询是不可避免的(太糟糕了,我想避免它……)。


来源:https://www.codenong.com/14585264/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9629.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?