gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:51:22 27 4
gpt4 key购买 nike

我为两个父/子相关文档创建了两个 Spring-Data elasticsearch 存储库。您可以看到它们的文档类 here

在像这样的 repositories 元素的帮助下,存储库在 XML 中被实例化

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

您可以在this中找到该问题的完整示例。 github 仓库。我的源代码基于 spring-data-elasticsearch repo 中找到的测试。源代码仅包含两个域类(父级、子级)、相关存储库、xml 配置文件和 unit test class .

克隆并运行mvn test,抛出java.lang.IllegalArgumentException:无法添加指向已存在类型的_parent字段,该字段还不是父级

似乎这种父/子关系会产生 Elasticsearch 异常,这在 Elasticsearch side 中很清楚。 ,但我不知道在执行Spring Data测试时如何防止这种情况发生。

最佳答案

如果您仍在寻找答案,我通过在父级的 @Document 中设置 createIndex=false 解决了这个问题。并在 beans 中手动创建它

            elasticSearchTemplate.createIndex(Parent.class);
elasticSearchTemplate.putMapping(parent.class);
elasticSearchTemplate.createIndex(Child1.class);
elasticSearchTemplate.createIndex(Child2.class);

这应该首先创建父级,然后创建关联的子级。另外,在更新映射之前请先清除文档。

关于spring-data - Spring Data Elasticsearch 父/子文档存储库/测试执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40345014/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com