我正在使用Grails-Elastic-search插件(0.0.3.0)。
我有2个域实体: - A和B.
实体B被映射为实体A中的组件。
例如: -
class A {
static searchable = {
B component: true
}
}
对实体B所做的更改反映在索引B的弹性搜索中,但更改未反映在实体A中。
我们需要重新索引实体A吗?如果这是插件中的错误或根据设计?
答案 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)
}
}