| Иван 的个人资料Иван Никитин: мысли вслу...照片日志列表 | 帮助 |
|
2005/4/3 e-Books: полнотекстовый поиск по книгамСамое время заняться поиском по книгам. Предполагается, что поисковик MSN Desktop Search уже установлен. Если нет - бегом на http://desktop.msn.com и скачиваем поисковик. Итак, предполагается, что поисковик уже установлен. MSN Desktop Search производит сбор информации о различных файлах, анализируя каждый тип файла с помощью специально для этого назначенного дополнения, так называемого IFilter. Стандартно, установлены фильтры для офисных документов, текстов и т.п. Список IFilter можно значительно расширить (и тем самым значительно усилить возможности поиска). Идем на сайт http://www.citeknet.com/ и скачиваем все доступные фильтры. Они пока бесплатны. Кроме того, вот еще подборка IFilter'ов: http://channel9.msdn.com/wiki/default.aspx/Channel9.DesktopSearchIFilters Теперь наш поисковик умеет искать в том числе и в zip архивах. Осталось научить его искать файлы FB2. К сожалению, IFilter для FB2 пока не существует, но поскольку FB2 - это XML файл, можно довольно просто заставить его индексироваться. Для этого открываем редактор реестра, находим раздел HKEY_CLASSES_ROOT\.fb2\PersistentHandler Значением по умолчанию для этого раздела нужно вписать строчку: Этим самым мы привяжем расширение файлов FB2 к обработчику IFilter XML. Все! Наши книги уже могут индексироваться! Правда, есть один маленький нюанс… Нормальный поиск по книгам FB2 К сожалению, IFilter Microsoft, который ищет XML, нормально индексирует только Юникод-кодировку :( Большинство же книг записаны в кодировке Windows-1251, и поэтому поиск по русскому тексту невозможен. (С латиницей проблем нет) Можно, конечно же, поставить другой IFilter, например, http://www.quilogic.cc/order.htm - но он стоит денег, причем немалых! Вообще, это жлобство, брать $100 за паршивую библиотечку поиска! Поэтому, сейчас проще просто перекодировать файлы в UTF-8. Конечно же, первое что приходит на ум - это воспользоваться какой-нибудь программкой. Но, по крайней мере, пока мне такая программка сейчас не известна. Александр Шабаршов, автор Book2Shelf, как то говорил в форуме, что можно сделать такой модуль в Book2Shelf, но потом, в будущем. Самому писать конверталку, тоже как то времени нет. Поэтому я пока конвертирую файлы руками. И примерно вот так: Открываем книгу FB2 блокнотом. Смотрим в первую строчку: Надо руками вписать следующее: Все! Если мы сделали все правильно - книга сохранена в кодировке UTF-8 и русский текст будет искаться как из пушки! Есть, правда, еще одна проблемка. Если при добавлении такой, конвертированной книги в Book2Shelf возникнет сообщение - "Не могу определить тип файла", то это глючит Book2Shelf. Дело в том, что блокнот при сохранении текста в UTF-8 вписывает в начало файла три байта, как маркер кодировки: EF BB BF. И это правильно: Эти байты в UTF-8 - неразрывный пробел нулевой ширины, поэтому влияния на текст они не оказывают, но сообщают другим программам, что использовалась UTF-8. Как ни странно, B2S глючит при анализе этих байтов. Я сообщал это автору (http://narod.yandex.ru/userforum/message.xhtml?owner=unclshura&message_id=3142901&thread_id=3142517 Через некоторое время, когда поисковик найдет новые книги (от нескольких сек, до мин) - вы можете попробовать их поискать: 评论 (1)
引用通告此日志的引用通告 URL 是: http://ivan-nikitin.spaces.live.com/blog/cns!B1CBCA6B7D433991!139.trak 引用此项的网络日志
|
|
|