我使用的是Grails-Elastic-search插件(0.0.3.0)。
我有两个域实体:-A和B。
实体B被映射为实体A中的组件。示例:-
class A {
static searchable = {
B component: true
}
}对实体B所做的更改会反映在索引B的弹性搜索中,但不会反映在实体A中。
我们需要重新索引实体A吗?如果是这样的话,这是插件中的bug,还是按照设计?
发布于 2014-08-26 00:10:28
我非常确定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)
}
}https://stackoverflow.com/questions/25480508
复制相似问题