Как мы знаем, каждая сущность ElasticsearchEntityMapper требует аннотации
@Document(indexName="foo")
public class Foo {...}
, чтобы мы могли использовать удобные методы, такие как:
<T> Page<T> queryForPage(SearchQuery query, Foo.class);
Но очень часто, что индексы эластичного поиска были рассчитаны на основе времени или языка. т.е.
@Document(indexName="2019")
public class Foo {...}
@Document(indexName="2020")
public class Foo {...}
или
@Document(indexName="english")
public class Foo {...}
@Document(indexName="german")
public class Foo {...}
Конечно, мы не можем создавать такие классы, как один класс с разными индексами . Что нам делать в этом случае? Один класс каждый индекс, Foo2019, Foo2020? <- Очень плохая идея. </p>
Мне интересно, почему Spring-data -astic-searchsearch проектирует таким образом? Это не очень гибко. Или я неправильно понимаю использование?
Спасибо за вашу помощь заранее! :)