我为两个父/子相关文档创建了两个Spring-Data弹性搜索存储库。您可以在此处查看它们的文档类。
在存储库元素的帮助下,存储库正在XML中实例化,如下图所示
<elasticsearch:repositories base-package="com.acme.repositories" />
您可以在这个github存储库中找到该问题的完整示例。我的源代码基于spring-data-elasticsearch存储库中的测试。源代码仅由两个域类(父类、子类)、相关存储库、xml配置文件和一个单元测试类组成。
克隆并运行mvn test
,抛出java.lang.IllegalArgumentException:无法添加指向已经存在的类型的_parent字段,该类型还不是父
似乎这种父/子关系会产生一个弹性搜索异常,这在Elasticsearch方面很清楚,但我不知道如何在执行Spring Data测试时防止这种情况发生。
如果你还在寻找答案,我通过在父对象的@文档中设置createIndex=false来解决这个问题。并在bean中手动创建它
elasticSearchTemplate.createIndex(Parent.class);
elasticSearchTemplate.putMapping(parent.class);
elasticSearchTemplate.createIndex(Child1.class);
elasticSearchTemplate.createIndex(Child2.class);
这应该首先创建父级,然后创建关联的子级。在更新映射之前也要清除文档。
问题内容: 我想使用Elasticsearch.Net/NEST搜索相关文档。例如,我有: 我想分别存储“个人”和“地址”文档,并根据“地址”字段查询返回“个人”文档的位置。例如,返回居住在波士顿的人的所有文件。我已经在Elaticsearch文档中看到了一些使用映射和父/子指令的示例,但对于Elasticsearch.Net/NEST没有看到任何示例。任何代码示例或指针将不胜感激… 问题答案:
首先,我是Spring Hibernate开发的新手。遵循了很多教程书籍,我创建了一个主要基于Spring、Hibernate标准的示例应用程序,我已经开始为Repository(DAO)方法编写一些测试用例,即查找、查找、保存、删除。 当我执行测试类时,这真是太疯狂了,并不是所有的测试用例都能正确地为ex执行。尤其是find 当我完全执行以上所有测试用例时 甚至更新测试用例的行为也很奇怪,因为在
我在玩spring数据存储库,有一个关于编写CRUD测试的问题。我针对Hibernate DAO和EJB3实体bean编写了许多CRUD测试,在这些测试中,我创建和实体,将其刷新到数据库中,清除实体管理器,并按ID读回它。实体管理器被清除,因此第一级缓存不会在读取时被击中。 使用spring数据存储库,我找不到一种方法来清除测试使用的底层实体管理器,这样我的读取就不会返回到实际的数据库,使我的测试
我有一系列具有类似结构的Java Dropwizard微服务。我的目标是编写一组ArchUnit测试用例,这些测试用例需要在每个服务中运行,如果这些测试用例失败,构建就会失败。 由于检查将是相似的,我是否可能提取出一个公共库中的所有测试用例,并将其作为依赖项添加到每个服务中?如何从库中添加测试用例以在服务的构建中运行?
当在我的pom.xml中启用强制使用JUnit47提供程序时,我得到: pom.xml如下所示
主要内容:为什么需要文档?,使用文档的好处测试文档是在测试软件应用程序期间或之前创建的工件的文档。文档反映了流程对客户,个人和组织的重要性。 包含所有文档的项目具有较高的成熟度。详尽的文档可以节省组织的时间和财富。 为什么需要文档? 如果测试或开发团队获得的软件无法正常工作并由其他人开发,那么为了找到错误,团队将首先需要一份文档。如果文档可用,那么团队将通过检查文档快速找出错误原因。但是,如果文件不可用,那么测试人员需要再次进行黑盒子和白