vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
В связи с тем, что lib.rus.ec окончательно скурвился я купил себе 32Гб SD-шку, возникает вопрос о работе с НУ ОЧЕНЬ большим набором электроных книг.

И да, primary target platform - maemo.

Т.е. возникает задача хранения каталога библиотеки отдельно от самой библиотеки, периодической актуализации и т.д.

Основная операция с этим каталогом - найти некоторое множество книг и вытащить его в "рабочий набор", то есть в случае maemo в рабочий каталог FBReader-а, владельцы всяких lbook-ов и openinkpot-ов лучше знают, что у них там.

[livejournal.com profile] phd тут рекламировал MyRuLib. Мне не понравилось. Во-первых, оно требует свежего wxWidgets. Более свежего чем в lenny (хотя пакет якобы для Debian 5.0 на сайте есть), так что даже на десктопе попробовать не получилось.
Во-вторых, в maemo вообще с wxWidgets туго.

В третьих, залез я в их базу данных посредством sqlite и показалось мне что проектировал её типичный php-кодер. Поле genres в таблице books, содержащее конкатенацию каких-то кодов...

Вот и думаю теперь что делать. Либо пытаться все же использовать эту заботливо подготовленную неграмотными людьми базу, либо писать свою извлекалку метаинформации из fb2 (pdf и djvu меня интересуют меньше, потому что на 32Гб флэшку они не влезут и читать их на экране 800x480 неудобно).

Либо вообще прикрутить sqlite-каталог к FBReader-у.

Но вот как должен выглядеть интерфейс этого библиотечного приложения?
Очевидно что просмотр списка из десятков тысяч авторов - не вариант. Тем более что нужен поиск по сериалам (sequence) или названиям.

Столь же очевидно, что о полнотекстовом поиске сразу надо забыть. Сделать полнотекстовый индекс существенно меньший по объему, чем сама библиотека вряд ли удастся, а библиотека занимает более половины доступного объема.

Ничего лучшего, чем повторить форму поиска на сайте lib.rus.ec мне в голову пока не приходит

Date: 2009-11-28 04:18 pm (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Я для хранения и каталогизации использую файловую систему. Есть утилита (https://fb2-perl-tools.svn.sourceforge.net/svnroot/fb2-perl-tools/trunk/fb2-python-tools/fb2maketree.py), которая пробегается по списку файлов и строит дерево, основываясь на информации. Например, "язык/автор/название.fb2". Или "язык/серия : автор/номер. название.fb2".

Файлы не копируются, а делаются жёсткие ссылки, поэтому места дерево почти не занимает. Если у текста несколько авторов, то создаётся каталог и мягкие ссылки с каталогов отдельных авторов. Дерево на 7,5 тыс. файлов строится секунд за 13 (не считая сканирования ФС).

Теперь вот думаю, что следует разделить задачу. Отдельно сбор метаинформации (простая база: имя файла — метаинформация) и отдельно построение дерева. Тогда построение ещё быстрее будет. Да и простые запросы делать можно будет.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 16th, 2025 12:15 pm
Powered by Dreamwidth Studios