Как я могу динамически создать класс Java из Solr db, когда я не знаю, сколько документов полей String имеют - PullRequest
0 голосов
/ 06 февраля 2020

Я работаю над приложением, которое добавляет динамические c поля в Solr DB на основе внешнего ответа REST API. Поля имеют суффикс * Txt. На данный момент у меня есть, например, документы с fistNameTxt, lastNameTxt. Позже мне нужно использовать документы в приложении Java, и мой класс:

@SolrDocument
@AllArgsConstructor
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResourceSolre {

    String firstNameTxt;
    String lastNameTxt;

}

Проблема в том, что внешний API может изменять документы и обслуживать мне еще несколько строковых (или даже длинных) полей. Solr добавит все в БД (потому что это динамические c поля), но мой класс больше не будет отражать документы. Вопрос в том, как создать класс, который также будет динамически обрабатывать документы Solr?

1 Ответ

3 голосов
/ 06 февраля 2020

Вы можете использовать подстановочные знаки при сопоставлении полей Solr с вашими собственными полями:

@Field("*_txt")
public Map<String, String> dynamicFieldsTxt;

Это даст вам карту с <FieldName>, сопоставленной с <Value>.

...