Hibernate Search Mass Indexer自定义查询

时间:2015-03-06 08:51:41

标签: hibernate hibernate-search

我正在使用Hibernate Search索引和搜索数据库记录。为了快速插入大量数据,我使用了JdbcTemplates进行批量插入,但是当我们这样做时,手动插入的数据不再被编入索引。

为了解决这个问题,我使用了Mass Indexer,但它只接受实体名称。是否可以使用自定义查询索引特定的数据集?比如说,将组ID为X的联系人编入索引就足够了。

 ftm = Search.getFullTextEntityManager(em);
 indexer = ftm.createIndexer(Contact.class)
    .batchSizeToLoadObjects(100)
    .cacheMode(CacheMode.NORMAL)
    .threadsToLoadObjects(2)
    .start();

P.S。 As per the documentation,创建自定义质量索引器是可能的,但它比我预期的要多得多,而且我不确定它是否能解决问题。其他选项可能是选择记录并手动添加到索引,但它也不可行。

1 个答案:

答案 0 :(得分:2)

我想您要求的功能会在HSEARCH-499中捕获。我们的想法是使用分离的条件查询。但是,正如您可以从问题的状态中看到的那样,它尚未实现。如果你愿意,你可以恢复讨论。

可能加快索引编制的一个选项是使用EntityIndexingIntercpetor。这允许您根据其状态有条件地跳过给定实体的索引,例如“组ID”。索引本身仍然需要在大规模索引处理期间加载,但是根据您的模型,它仍然可以加速,特别是如果您的模型更复杂。

相关问题