检查文档是否已被索引(Hibernate 搜索)
Check if a document is already indexed (Hibernate Search)
我正在使用 Hibernate Search 但我不能使用自动索引,所以我想知道是否有一种方法可以检查我的数据库中的文档是否已经被索引,以便仅手动索引丢失的文件。
如果你想知道一个文档是否在lucene索引中被索引,使用luke
您可以 运行 在 id
字段上查询,并可选择使用投影来避免从数据库加载实体。
如果您必须检查许多文档,然后对其中的许多文档重新编制索引,使用 MassIndexer 并让它简单地重建所有索引可能会更有效。
fullTextSession.createIndexer().startAndWait();
MassIndexer 使用高效的批处理策略,因此它可以比 N index()
操作快几个数量级,例如,如果 N 是数据库大小的一半。
如果您不知道可能会丢失多少实体,我会使用 MassIndexer,因为它会在更容易预测的时间范围内完成。如果您需要重新索引已知的、有限数量的实体,则单一 index()
方法更适合。
我正在使用 Hibernate Search 但我不能使用自动索引,所以我想知道是否有一种方法可以检查我的数据库中的文档是否已经被索引,以便仅手动索引丢失的文件。
如果你想知道一个文档是否在lucene索引中被索引,使用luke
您可以 运行 在 id
字段上查询,并可选择使用投影来避免从数据库加载实体。
如果您必须检查许多文档,然后对其中的许多文档重新编制索引,使用 MassIndexer 并让它简单地重建所有索引可能会更有效。
fullTextSession.createIndexer().startAndWait();
MassIndexer 使用高效的批处理策略,因此它可以比 N index()
操作快几个数量级,例如,如果 N 是数据库大小的一半。
如果您不知道可能会丢失多少实体,我会使用 MassIndexer,因为它会在更容易预测的时间范围内完成。如果您需要重新索引已知的、有限数量的实体,则单一 index()
方法更适合。