170 похожих чатов

Всем привет. Есть гуру spring data elasticsearch, кто может подсказать как

можно реализовать?
Вопрос:
Есть индекс эластика, который генерит приложение. Описан маппинг объекта в индекс и тут появилась потребность создавать поля в индексе динамически (т. е. поля, которых нет в описанном маппинге).
Пример маппинга:
@Document(indexName = "product", createIndex = true)
public class Product {
@Id
@Field(name = "id", type = FieldType.Long)
private Long id;
@Field(name = "name", type = FieldType.Text)
private String name;
}

Нужно при записи документа в индекс добавить в него поля count_mag1 = 5, count_mag2 = 6 ... count_magN = 5
Т. е. поле, которые не описаны в маппинге и их количество динамическое.

Я так понимаю в таком случае мне только уходить от описанных Entity и сохранение сущностей через репозитории spring data?
В идеале бы хотелось конечно добавить в Entity свойство со значением коллекции вида:
private Map<String, Long> counts;
и на этапе формирования запроса в эластик перебирать эту мапу и создавать элементы с таким key value, а само это проперти игнорить. Может есть такая возможность и я просто тупой и не замечаю ее?

3 ответов

22 просмотра

а можете рассказать какая задача решается таким извращением?

Кирилл-Веревкин Автор вопроса
Nick
а можете рассказать какая задача решается таким из...

имеется ввиду динамическое наличие полей в индексе? Насколько я понимаю постановку задачи - удобство/быстрота дальнейшей сортировки по индексу. Я если честно по большей части большой нуб в эластике, поэтому просто делаю задачку согласно постановке. Понимаю основы что и как в целом работает, а в нюансы не вдавался пока :( Это конечно плохо, но как есть к сожалению. Сейчас в доке spring data elastic нашел вариант с EntityCallback, возможно он решит мою проблему

Кирилл Веревкин
имеется ввиду динамическое наличие полей в индексе...

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

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта