Grails ElasticSearch插件:组件类型映射

时间:2014-08-25 06:57:34

标签: grails elasticsearch grails-plugin

我正在使用Grails-Elastic-search插件(0.0.3.0)。

我有2个域实体: - A和B.
实体B被映射为实体A中的组件。 例如: -

class A {
   static searchable = {
       B component: true
   }
}

对实体B所做的更改反映在索引B的弹性搜索中,但更改未反映在实体A中。

我们需要重新索引实体A吗?如果这是插件中的错误或根据设计?

1 个答案:

答案 0 :(得分:1)

我相当确定this是与您的问题相关的代码。

根据文档,B实际上是作为A的索引文档的一部分存储的。由于在这种情况下A是根实体,而A本身尚未更新,因此您可以看到A不会被重新编制索引。不确定这是"设计"还是缺点,但我可以告诉你,它就在代码中。

懒惰:

void onPostUpdate(PostUpdateEvent event) {
    def entity = getEventEntity(event)
    if (!entity) {
        logger.warn('Received a PostUpdateEvent with no entity')
        return
    }
    if (elasticSearchContextHolder.isRootClass(entity.class)) {
        pushToIndex(entity)
    }
}