Вложенный документ и настройка Parent/Child с использованием Spring Boot + Spring Data Elasticsearch

Согласно официальному эластичному поиску, я понимаю, что Nested требует переиндексации родителя со всеми его дочерними элементами при операциях добавления/удаления/обновления, поэтому это дорого, когда требуется много изменений.

Пример использования вложенных:

@Document(indexName = "test-index-person-multiple-level-nested", type = "user", shards = 1, replicas = 0, refreshInterval = "-1")
public class PersonMultipleLevelNested {
    @Id
    private String id;

    private String name;

    @Field(type = FieldType.Nested)
    private List<GirlFriend> girlFriends;

    //Getter, setter & constructor
}

И Parent & Child лучше подходят для этой ситуации, но как мне настроить Spring Data Elasticsearch? Он еще не поддерживается? Кажется, не удается найти соответствующую документацию.


person Mr Hoelee    schedule 13.08.2017    source источник


Ответы (1)


Не уверен насчет документации, но для этой функции есть модульный тест: https://github.com/spring-projects/spring-data-elasticsearch/blob/master/src/test/java/org/springframework/data/elasticsearch/entities/ParentEntity.java — см., в частности, @Parent.

person xeraa    schedule 13.08.2017
comment
Извините, я все еще не могу понять идею из кода модульного теста. Почему дочерний класс находится внутри родительского класса. Не похоже на обычный стиль JPA? Например: личный список‹GirlFriend› girlFriends; Это потому, что я хочу поддерживать как elasticsearch, так и hibernate... - person Mr Hoelee; 14.08.2017
comment
Не думайте, что вы должны поместить их в один и тот же класс. Вы пробовали это? - person xeraa; 14.08.2017