2016-10-31 24 views
7

Utworzono dwa repozytoria sprężynowej elastycznej analizy dla dwóch dokumentów powiązanych z rodzicem/dzieckiem. Możesz zobaczyć klasy dokumentów dla obu z nich here.Wiosenne dane Elasticsearch Rodzicielskie/dziecięce repozytorium dokumentów/Błąd wykonania testu

Repozytoria są coraz instancja w XML za pomocą elementu baz, jak to

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

można znaleźć kompletny przykład kwestii w this github repo. Mój kod źródłowy opiera się na testach znalezionych w spring-data-elasticsearch repo. Kod źródłowy składa się tylko z dwóch klas domeny (rodzic, dziecko), powiązanych repozytoriów, plików konfiguracyjnych xml i unit test class.

Clone i prowadzony mvn test rzuca java.lang.IllegalArgumentException: can't add a _parent field that points to an already existing type, that isn't already a parent

Wydaje się, że ta relacja rodzic/dziecko tworzy elastyczną wyszukiwarki wyjątek, który jest jasne w Elasticsearch side, ale nie wiem, jak temu zapobiec podczas wykonywania wiosną Test danych.

Odpowiedz

0

Jeśli wciąż szukasz odpowiedzi, rozwiązałem to przez ustawienie createIndex = false w dokumencie @ dokumentu nadrzędnego. I to w tworzeniu ręcznie w ziarnach

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

To powinno stworzyć rodzicom, a potem przynależne dzieci. Należy również wyczyścić dokument przed zaktualizowaniem odwzorowania.