2016-10-31 19 views
7

Tôi đã tạo hai kho dữ liệu Spring-Data elasticsearch cho hai tài liệu liên quan cha/con. Bạn có thể xem các lớp tài liệu cho cả hai lớp này here.Dữ liệu mùa xuân Elasticsearch Parent/Child Document Repositories/Kiểm tra lỗi thực hiện

Các kho đang nhận được thuyết minh trong XML với sự giúp đỡ của nguyên tố kho như thế này

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

Bạn có thể tìm thấy một ví dụ hoàn chỉnh về vấn đề này trong this github repo. Mã nguồn của tôi dựa trên các thử nghiệm được tìm thấy trong spring-data-elasticsearch repo. Mã nguồn bao gồm chỉ hai lớp miền (cha mẹ, con), các kho lưu trữ liên quan, các tệp cấu hình xml và unit test class.

Clone và chạy mvn test, ném java.lang.IllegalArgumentException: can't add a _parent field that points to an already existing type, that isn't already a parent

Dường như mối quan hệ cha/con này tạo ra một ngoại lệ tìm kiếm đàn hồi đó là rõ ràng trong Elasticsearch side, nhưng tôi không biết làm thế nào để ngăn chặn điều này xảy ra khi thực hiện vào mùa xuân Kiểm tra dữ liệu.

Trả lời

0

Nếu bạn vẫn đang tìm câu trả lời tôi đã giải quyết vấn đề này bằng cách đặt createIndex = false trong @Document của phụ huynh. Và tạo điều này theo cách thủ công trong các hạt đậu

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

Điều này sẽ tạo cha mẹ trước và sau đó là các con liên quan. Cũng làm rõ tài liệu trước khi bạn cập nhật ánh xạ.

Các vấn đề liên quan