Как можно синхронизировать одни и те же объекты в разных документах с помощью Spring ElasticSearch? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть следующие документы

@Document(indexName = IndexNames.ORGANIZATION_INDEX, type = Types.ORGANIZATION_TYPE)
public class OrganizationDocument implements Serializable {

    @Id
    private Long id;
    private String name;
    ....
}

и

@Document(indexName = IndexNames.USER_INDEX, type = Types.USER_TYPE)
public class UserDocument implements Serializable {

    @Id
    @Field(type = FieldType.Keyword)
    private String id;

    private OrganizationDocument organization;

    private String email;
    private String firstName;
    private String lastName;
    ...
}

Чего я пытаюсь добиться, так это обновить OrganizationDocument в UserDocument после первоначальных изменений OrganizationDocument (имя e.t.c)

Для этого я пытаюсь использовать ElasticsearchTemplate

Я использовал что-то вроде

            IndexRequest indexRequest = new IndexRequest();
            indexRequest.source("organization", organizationDocument);
            UpdateQuery updateQuery = new UpdateQueryBuilder().withId(userDocument.getId()).withClass(UserDocument.class).withIndexRequest(indexRequest).build();
            elasticsearchTemplate.update(updateQuery);

Но я не могу написать xcontent для неизвестного значения типа class ... OrganizationDocument.

Не могли бы вы дать предложение, как сделать частичное обновление для встроенного объекта OrganizationDocument?

Спасибо.

...