为什么Lucene不支持对现有文档的任何类型的更新

Gil*_*hum 8 java lucene search information-retrieval immutability

我的用例涉及索引Lucene文档,然后在以后的多个场合添加指向此现有文档的术语,即不删除和重新添加每个新术语的整个文档(因为性能,而不是保留原始术语).

我知道文档无法真正更新.我的问题是为什么?

或者更准确地说,为什么不支持所有形式的更新(术语,存储字段)?
为什么不可能添加另一个术语来指向现有文档 - 从技术上讲:并非所有需要的是将现有文档ID放在术语的发布列表中.为什么这么难?是否存在一些不可变的统计数据?

是否有任何变通方法可以支持我在现有文档中添加术语(索引字段)的用法?

dol*_*lbi 4

我确实知道文档无法真正更新。我的问题是为什么?

Gili,编辑文档将导致相关术语发布的更改,由于术语发布列表结构,这是有问题的。倒排列表被排序并按顺序存储在内存中。因此,要将文档添加到术语的发布列表中,您必须给它一个更高的值,doc id这是通过删除整个文档并重新索引来完成的。