elasticsearch,grails-plugin,Grails,elasticsearch,Grails Plugin" /> elasticsearch,grails-plugin,Grails,elasticsearch,Grails Plugin" />

Grails ElasticSearch插件:组件类型映射

Grails ElasticSearch插件:组件类型映射,grails,elasticsearch,grails-plugin,Grails,elasticsearch,Grails Plugin,我正在使用GrailsElastic搜索插件(0.0.3.0) 我有两个域实体:-A和B. 实体B映射为实体a中的组件。 例如:- class A { static searchable = { B component: true } } 对实体B所做的更改反映在索引B的弹性搜索中,但更改不反映在实体A中 我们需要重新索引实体A吗?如果是这样的话,这是插件中的错误还是按照设计的错误?我很确定这是与您的问题相关的代码 根据文档,B实际上存储为a的索引文档的一部分。由于在

我正在使用GrailsElastic搜索插件(0.0.3.0)

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

class A {
   static searchable = {
       B component: true
   }
}
对实体B所做的更改反映在索引B的弹性搜索中,但更改不反映在实体A中

我们需要重新索引实体A吗?如果是这样的话,这是插件中的错误还是按照设计的错误?

我很确定这是与您的问题相关的代码

根据文档,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)
    }
}