Я хотел бы сгладить вложенный объект json, например. {"a":{"b":1}}
до {"a.b":1}
, чтобы переварить его в solr.Сгладить вложенный JSON с помощью jq
У меня есть 11 TB файлов json, которые вложены и содержат точки в именах полей, что означает не elasticsearch (точки), ни solr (вложенные без обозначения _childDocument_
) могут переваривать его как есть.
Другие решения состоят в том, чтобы заменить точки в именах полей на символы подчеркивания и подтолкнуть их к elasticsearch, но у меня гораздо лучший опыт работы с solr, поэтому я предпочитаю решение сглаживания (если solr не может переварить эти вложенные jsons как есть?).
Я предпочел бы поиск elasticsearch только в том случае, если процесс переваривания займет гораздо меньше времени, чем solr, потому что мой приоритет переваривается так быстро, как я могу (поэтому я выбрал qt вместо того, чтобы писать его на python).
Просьба помочь.
EDIT:
Я думаю, что пара примеров 3 & 4 решает это для меня: https://lucidworks.com/blog/2014/08/12/indexing-custom-json-data/
Постараюсь в ближайшее время.
Это решение не работает, когда JSON содержит массивы. Например: '{" a ": {" b ": [1]}}', для которого возникает ошибка: ** jq: error (at: 1): string (".") И number (0) не может быть добавлено ** –