|
|
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Наиболее быстрый маппинг между XML(FB2) форматом электронной книги. Как? Сама спецификация описана здесь http://www.fictionbook.org/index.php/Документы Образец книжки я - приаттачиваю. Из того что я разработал нет пока что нифига. Только вот такой кусок. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Дальнейшее - под вопросом. Давно я этим XML не занимался. Последний раз использовал Apache Digester и Stax ( в сыром виде. Тоесть в виде хендлера событий. Оба способа кажутся мне не очень удобными с точки зрения внесения изменений. Некто Баелдунг предлагает аж 8(!) способов замапить XML на объекты. https://www.baeldung.com/java-xml Сомнительно что я успею опробовать все. Ищу нечто очень быстрое наподобие SAX/Stax но более удобное в разработке. Есть надежда что JAXB мне подойдет. Но очень не хотелось-бы иметь под капотом XMLDocument. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2019, 21:02:21 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
maytonНаиболее быстрый маппинг по какому критерию? временя выполнения, расход памяти или ...уяк-...уяк и в продакшн :) maytonНекто Баелдунг предлагает аж 8 бери любое из того, что больше нравится/подходит. так-то на github и готовые парсеры есть, но качество под вопросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2019, 21:15:52 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
chpashamaytonНаиболее быстрый маппинг по какому критерию? временя выполнения, расход памяти или ...уяк-...уяк и в продакшн :) По времени выполнения. Продакшена нет. Это - песочница. Но если она будет грузить документы 3 суток - нахер-нахер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2019, 21:18:23 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
chpashamaytonНекто Баелдунг предлагает аж 8 бери любое из того, что больше нравится/подходит. так-то на github и готовые парсеры есть, но качество под вопросом. Взял JAXB пока. Напрягает то что в ебуках встречаются namespaces. С ними - вечно какие-то неоднозначности. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2019, 21:20:37 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Почитал про XStream http://x-stream.github.io/index.html В целом понравилось. Быстрая. Повисли вопросы? Маппинг в специфичные имена тегов? Как? Код: xml 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 00:36:07 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
maytonПродакшена нет. Это - песочница. Но если она будет грузить документы 3 суток - нахер-нахер Поскольку размер любого файла FB2 не превышает нескольких МБ, то при любом способе будет загружаться не более чем за секунды и расходовать не более десятков мегабайт памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 09:36:04 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
mayton, там есть достаточная документация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 09:37:50 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Partisan MmaytonПродакшена нет. Это - песочница. Но если она будет грузить документы 3 суток - нахер-нахер Поскольку размер любого файла FB2 не превышает нескольких МБ, то при любом способе будет загружаться не более чем за секунды и расходовать не более десятков мегабайт памяти. Да мне не жалко памяти. 270 Гигов zip-архивов. Просто хочется чтоб процессинг прошёл быстрее. Возможно будут читать в несколько потоков. За вчерашний день я нарисовал для себя шпаргалку по 8 XML-технологиям. Опробовал 4 штуки. Пока в фаворе остается Stax. Возможно на нем и будут всё делать. В простейшем случае буду игнорировать неизвестные теги. Индексировать собственно есть интерес только такие поля как Автор, Название, и собственно тело текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 10:27:22 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Если кратко, то для разбора XML используются библиотеки, работающие с DOM, или с потоком данных (stream parser) или вызов XSLT скрипта. Для крупного XML файла, состоящего из большого количества записей простой структуры, больше подходят stream parser-ы,которые делятся на StAX и SAX (спецификации). StAX несколько проще в использовании. Можно рассмотреть библиотеку FasterXML Jackson, поддерживающую разные методы работы с XML (и JSON), в том числе работу как StAX-parser (которая реализована дополнительной библиотекой Woodstox, к которой обращается Jackson). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 10:48:14 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Partisan M, нет нет. С DOM я не хочу связываться. Я с ним имел дело еще в 2000х. Это овер-проектирование для меня. FasterXML Jackson Вот это хорошая тема. Почитаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 10:50:21 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
mayton, XFire тоже подойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 10:50:59 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
maytonНаиболее быстрый маппинг между XML(FB2) форматом электронной книги. Как? Перебирая мапперы. То есть когда хочется точно взять инфу из xml, то возникают нюансы, которые разные мапперы по разному обходят. Ну и надо выбрать, что там больше нравится в плане точности отображения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 11:26:04 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Чтоб быть честным я попробую реализовать хотя-бы 2 streamable маппера за фасадом своего приложения. И сделаю минимум 2 бенчмарка. Будет StaxFb2Mapper + еще один неизвестный из серии таких-же быстрых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 12:09:30 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
maytonЧтоб быть честным я попробую реализовать хотя-бы 2 streamable маппера за фасадом своего приложения. И сделаю минимум 2 бенчмарка. Будет StaxFb2Mapper + еще один неизвестный из серии таких-же быстрых. сделай фасад, выложи проект, расшарь его нам) мы допишем, перехватим твою идею и продадим! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 12:13:41 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Это будет прелестно. Я не против. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 12:21:25 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Хм... мне еще и быстрый JSon конвертер понадобится. Обычно я юзал гугловый GSon и какой-то fasterxml.jackson. Но быстрые он или нет - хрен ево знает. Поищу бенчмарки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 16:18:06 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
maytonНо быстрые он или нет - хрен ево знает там примерно такая же ситуация. чем более низкоуровнево, тем быстрее. чем более удобно и декларативно, тем медленнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 17:29:57 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Вот буквально 5 минут назад запилил. На Джаксоне. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. В Кибану должный пойти put-реквесты в таком формате HTTP. Там соотв. формат полей - произвольный. Код: sql 1. 2. 3. 4. 5. 6. Вот эта штука movies - это по идее название текстового индекса. Его я должен по протоколу сначала создать отдельной командой Кибаны. Еще не придумал как это всё завязать в последовательность действий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 17:47:39 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Ну там не мувис понятное дело а books. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 18:00:47 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
mayton270 Гигов zip-архивов - если не сложно, поделитесь ссылочкой) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 18:33:01 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Рутрекер. В поиске: Флибуста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2019, 18:44:48 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Кажется вот этот линк https://rutracker.org/forum/viewtopic.php?t=5462398 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2019, 00:07:24 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
maytonВот буквально 5 минут назад запилил. На Джаксоне. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Криво. В смысле нормальная последовательность такая: FB2 -> XmlToJava -> POJO -> JavaToJson И обратно через тот же POJO можно. То есть один дата-объект и две конвертации, обе заточены (замаплены) на один набор классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2019, 13:29:24 |
|
||
|
Быстрый маппинг FB2=>JavaObject
|
|||
|---|---|---|---|
|
#18+
Да. Промежуточная фаза Java-object мне 100% нужна. Возможно надо будет втолкнуть объект Книга не в Elastic-endpoint а в какую-нибудь SQLite. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2019, 13:31:39 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39808452&tid=2121313]: |
0ms |
get settings: |
13ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
52ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 305ms |
| total: | 522ms |

| 0 / 0 |
