Spring Data Elasticsearch 父子文档存储库 / 测试执行错误

7

我为两个父/子相关文档创建了两个Spring-Data Elasticsearch存储库。您可以在此处查看它们的文档类。

使用仓库元素,XML实例化存储库的过程如下

<elasticsearch:repositories base-package="com.acme.repositories" />

您可以在this的github存储库中找到该问题的完整示例。我的源代码基于spring-data-elasticsearch repo中发现的测试。源代码仅包含两个域类(父级,子级),相关存储库,xml配置文件和一个单元测试类
克隆并运行mvn test,会抛出java.lang.IllegalArgumentException: can't add a _parent field that points to an already existing type, that isn't already a parent 看起来这种父/子关系会产生弹性搜索异常,这在Elasticsearch side中是清楚的,但我不知道如何在执行Spring Data测试时防止这种情况发生。
1个回答

0
如果您仍在寻找答案,我通过在父文档的@Document中设置createIndex=false来解决了这个问题。并手动在beans中创建它。
            elasticSearchTemplate.createIndex(Parent.class);
            elasticSearchTemplate.putMapping(parent.class);
            elasticSearchTemplate.createIndex(Child1.class);
            elasticSearchTemplate.createIndex(Child2.class);

这应该先创建父级,然后创建相关的子级。 在更新映射之前确保清除文档。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接