New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Не создаются индексы словарей

Сообщаем о найденных ошибках сюда

Не создаются индексы словарей

Postby Michael72 » Mon Apr 28, 2014 2:31 am

Операционная система: Windows 7 Профессиональная, Service Pack 1
Версия словаря GoldenDict: 1.5.0-RC-293-g75ed194
Словарь:
  1. "Greek Lexicon (English)" [DICT]
  2. "Greek Lexicon (English)" [DICT]
Действия: Сперва установите первый словарь из списка.
Внимание! Словари имеют одно и то же кодовое имя и заголовок, но это разные версии — не запутайтесь. Рекомендую архивы поместить в два разных каталога: 1 и 2. Очередность установки словарей принципиально важна для воспроизведения ошибки.

Установка словаря №1
Для чистоты эксперимента перед установкой убедитесь, что такой словарь у вас ещё не установлен. Если установлен, то выйдите из программы GoldenDict и удалите его из каталога, который в настройках GoldenDict указан для поиска файлов словарей. Затем запустите GoldenDict и выполните команду Пересканировать файлы. Для установки словаря необходимо скопировать содержимое архива (файлы ell-eng_strong.dict.dz и ell-eng_strong.index) в один из каталогов, в котором GoldenDict ищет файлы словарей, затем запустить GoldenDict, либо если он уже запущен, выполнить команду Пересканировать файлы. Обратите внимание на заголовки — через меню Правка - Словари - Словари в списке словарей нажмите на правую клавишу мыши над заголовком «Greek Lexicon (English)» и выберите в контекстном меню команду "Заголовки словаря":
GoldenDict19.PNG
GoldenDict, версия 1.5.0-RC-293-g75ed194
GoldenDict19.PNG (14.87 KiB) Viewed 10438 times

Установка словаря №2
После установки первого словаря выйдите из GoldenDict, скопируйте файлы ell-eng_strong.dict.dz и ell-eng_strong.index из второго архива в тот же каталог, в котором находятся файлы из первого архива. Запустите GoldenDict. Выполните команду Пересканировать файлы. Задайте поиск по слову "αδω". В результате появляется сообщение об ошибке:
Ошибка поиска: Malformed index file line encountered

Снова посмотрите заголовки словаря:
GoldenDict19.PNG
GoldenDict, версия 1.5.0-RC-293-g75ed194
GoldenDict19.PNG (14.87 KiB) Viewed 10438 times

Для исправления ситуации необходимо выйти из программы GoldenDict, удалить файлы ell-eng_strong.dict.dz и ell-eng_strong.index, снова запустить GoldenDict и выполнить команду Пересканировать файлы. И только после этого скопировать файлы ell-eng_strong.dict.dz и ell-eng_strong.index из второго архива в каталог, в котором GoldenDict ищет словари, и снова выполнить команду Пересканировать файлы. Теперь проверьте поиск по слову "αδω". Сообщения об ошибке больше нет, словарной статьи не найдено. Посмотрите заголовки словаря ещё раз:
GoldenDict18.PNG
GoldenDict, версия 1.5.0-RC-293-g75ed194
GoldenDict18.PNG (16.33 KiB) Viewed 10438 times
Примечание
Данный скрин-шот демонстрирует, что теперь заголовки изменились.

Установка словаря №1
Проделаем то же самое в обратном порядке — попытаемся вернуть первый словарь. Выходим из GoldenDict, из первого архива копируем ell-eng_strong.dict.dz и ell-eng_strong.index, запускаем GoldenDict, выполняем команду Пересканировать файлы. Задаём поиск по слову "αδω". Результат — словарная статья не найдена. Заголовки:
GoldenDict18.PNG
GoldenDict, версия 1.5.0-RC-293-g75ed194
GoldenDict18.PNG (16.33 KiB) Viewed 10438 times

Исправляем ситуацию по вышеприведённому алгоритму: выход из GoldenDict, удаление файлов ell-eng_strong.dict.dz и ell-eng_strong.index, запуск GoldenDict, команда Пересканировать файлы, копирование файлов ell-eng_strong.dict.dz и ell-eng_strong.index из первого архива, команда Пересканировать файлы. Поиск по слову "αδω":
GoldenDict17.PNG
GoldenDict, версия 1.5.0-RC-293-g75ed194
GoldenDict17.PNG (63.68 KiB) Viewed 10438 times

Заголовки:
GoldenDict19.PNG
GoldenDict, версия 1.5.0-RC-293-g75ed194
GoldenDict19.PNG (14.87 KiB) Viewed 10438 times

Суть проблемы: Из вышеприведённых действий видно, что индексы словаря в формате DICT после его обновления не пересоздаются.
Особенность данных словарей: оба словаря были созданы утилитой dictfmt 1.12.1 из одного и того же источника, но во втором случае в отличие от первого использовался ключ --index-keep-orig.
См. man dictfmt:
Code: Select all
       --index-keep-orig
              When --utf-8 is specified headwords are lowercased and non-alphanumeric  characters
              are  removed  from it before saving to .index file in order to simplify the search.
              When --index-keep-orig option is used fourth column is created  (if  necessary)  in
              .index  file, and contains an original headword which is returned by MATCH command.
              This option may be useful to prevent converting " AT&T" to " ATT" or to keep proper
              nouns with uppercased first letter.
Last edited by Michael72 on Wed Apr 13, 2016 10:04 am, edited 1 time in total.
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Не создаются индексы словарей

Postby Abs62 » Mon Apr 28, 2014 3:59 am

Всё верно, таким способом можно обмануть GD. Он проверяет, что индекс для такого набора файлов уже есть и что он создан позже, чем сами файлы. Если ещё и содержимое проверять, он по часу запускаться будет.
И метод лечения правильный - перезапустить GD/пересканировать словари между удалением старых файлов и копированием новых. Или дать файлам другие имена.

PS. При запуске GD выполняет сканирование, так что давать команду пересканирования сразу после особого смысла нет.
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Re: Не создаются индексы словарей

Postby Michael72 » Mon Apr 28, 2014 5:07 am

Abs62 wrote:...Он проверяет, что индекс для такого набора файлов уже есть и что он создан позже, чем сами файлы. Если ещё и содержимое проверять, он по часу запускаться будет.

А если использовать CRC?
Michael72
 
Posts: 180
Joined: Tue Mar 12, 2013 1:34 pm

Re: Не создаются индексы словарей

Postby Abs62 » Mon Apr 28, 2014 5:50 am

А сколько времени займёт такой расчёт для файла в несколько сот мегабайт? А если таких файлов много?
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am


Return to Ошибки

Who is online

Users browsing this forum: No registered users and 25 guests