是否可以设置 Oak 属性索引并避免重新索引?

Posted

技术标签:

【中文标题】是否可以设置 Oak 属性索引并避免重新索引?【英文标题】:Is it possible to set up an Oak property index and avoid reindexing? 【发布时间】:2018-03-10 12:35:17 【问题描述】:

即使我在索引上添加了reindex=false 属性,它仍然会在创建时触发重新索引。

【问题讨论】:

要让索引回答您的查询,它需要重新索引现有数据。你的用例是什么? @catholicon 我知道我要搜索的数据尚未创建。所以我不需要索引现有数据,并且在大型存储库上重新索引可能会非常昂贵 【参考方案1】:

您可以使用解决方法:按照您想要的方式设置索引定义,但保留type=disabled。让它保持几秒钟(基本上,让至少一个异步索引循环完成)。然后设置type=<your-index-type>。顺便说一句,在 Oak 1.6 之后,您还需要设置 refresh=true 以使 Oak 相信您希望将此更改(type 中的更改)存储在内部。

【讨论】:

【参考方案2】:

简短的回答是

重新索引标志主要用于索引更新。创建新索引时,它由相应的处理器索引。对于同步(主要是非 lucene),索引几乎立即开始。

对于异步索引(如 lucene),对存储库或索引的更改将在下次运行 AsyncIndexUpdate 作业时获取。

重新索引标志将从头开始重新创建索引,因此建议您在修改现有索引时使用该标志。新索引总是从头开始创建,因为该索引没有先前的检查点(之前点),并且存储库中符合条件的所有内容都将被重新索引。

更多信息可以在官方docs 中找到,特别是在reindex section 下。

一旦存储了索引定义,就会自动构建新索引。

【讨论】:

以上是关于是否可以设置 Oak 属性索引并避免重新索引?的主要内容,如果未能解决你的问题,请参考以下文章

将对象表索引路径设置为对象属性?

elasticsearch 重新索引文档减少可用空间

重新生成索引和重新组织索引

是否可以只更新 pypi 索引中的详细信息,而不重新创建包?

重新排序 UITableView 单元格并跟踪索引

如果 cumsum 大于值,则重新启动 cumsum 并获取索引