# FLUIdS
Что нового

- 13.03.02: вышла версия 4.2.5.
- 28.11.01: вышла версия 4.2.4.
- 14.09.01: вышла версия 4.2.3.
- 27.06.01: вышла версия 4.2.2.
- 02.04.01: вышла версия 4.2.1.
- 23.03.01: вышла версия 4.2.
- 29.01.01: вышла версия 4.1.2.
- 10.01.01: вышла версия 4.1.1.
- 30.11.00: вышла версия 4.1.
- 31.05.00: вышла версия 4.0.3.
- 24.04.00: вышла версия 4.0.2.
- 19.04.00: вышла версия 4.0.1.
- 26.03.00: вышла версия 4.0.
- 17.03.00: вышла версия 4.0b5.
- История изменений серии 3.x.

| Версия 4.2.5 |

В конфигурационный файл индексации добавлена директива MaxContentLength, с помощью которой можно изменить (правда, только в меньшую сторону) значение для максимального размера фрагмента текста индексируемого документа в символах, сохраняемого в индексном файле. Начальное значение регулируется параметром компиляции MAX_CONTENT_LENGTH.

Кроме того, исправлены обнаруженные ошибки.

| Версия 4.2.4 |

В конфигурационный файл индексации добавлена директива ConvertToRussian, позволяющяя задать замены для английских букв в индексируемых русских словах. Чаще всего такая замена требуется для русской буквы 'р', которую очень часто заменяют на английскую букву 'p', сходную по начертанию.

| Версия 4.2.3 |

Судя по всему, это последняя подверсия из 4.2.x. В ней:

- Добавлена утилита depender, с помощью которой теперь формируется файл зависимостей исходных текстов поисковой системы от включаемых файлов.
- Для программы flmerge введена опция -d для чтения имен объединяемых индексных файлов со стандартного ввода (STDIN).
- Введена возможность перевода исходных текстов из фомата DOS в формат UNIX и обратно командами `make to_unix` и `make to_dos`.
- Слегка обновлена документация (в частности, добавлено описание параметров вызова CGI модуля).
- Исправлены обнаруженные ошибки.

| Версия 4.2.2 |

В этой версии внесено несколько "косметических" изменений:

- Начаты работы по созданию украинского интерфейса. Пока украинифицированы только библиотеки, CGI модуль еще нуждается в обработке. Соответственно, в файл ~/zcfg.h добавлен параметр компиляции UKRAINIAN_INTERFACE.
- В конфигурационный файл индексации добавлены директивы AcceptFileName, AcceptDirName, AcceptFullPathFile и AcceptDirWithFile, являющиеся аналогами директив Ignore`*`, только с противоположным, разрешающим, смыслом.
- В конфигурационный файл индексации добавлены директивы AcceptFileURL и IgnoreFileURL для отсева индексируемых файлов по их URL.
- В конфигурационный файл CGI модуля добавлена секция strings и набор директив для нее, позволяющие изменить некоторые строки, используемые при выводе бланка запроса и результатов поиска (без применения профильных файлов).
- В раздел index конфигурационного файла CGI модуля добавлена директива replace для изменения зашитых в индексных файлах URL.
- Помимо этого, исправлены найденные ошибки.

| Версия 4.2.1 |

Исправлена ошибка, связанная с переиндексацией. Если индексировался измененный документ, то в индексном файле о нем оставалась старая информация.

| Версия 4.2 |

Главное в этой версии - возможность переиндексации контента. Данная возможность реализуется опциями -r и -u программы flindex. Переиндексация производится таким образом, что не изменившиеся документы не индексируются по-новой, информация о них извлекается из старого индексного файла, что значительно ускоряет сам процесс переиндексации. Переиндексация с опцией -r удаляет из индексного файла отсутствующие документы, в то время как опция -u позволяет сохранять их.

Введенная возможность переиндексации контента имеет некоторые побочные эффекты. Во-первых, в индексном файле стала сохраняться информация о пустых проиндексированных документах (т.е. с нулевым числом проиндексированных в них слов), что несколько увеличивает размер самого индекса. Во-вторых, несколько (весьма незначительно, но все же) изменились весовые коэффициенты для коротких индексируемых документов (с числом проиндексированных слов, меньших 100), поэтому перед использованием новых опций -r и -u лучше произвести полную реиндексацию имеющегося контента.

| Версия 4.1.2 |

Разработанное API поиска воплотилось в реальные библитеки, которые генерятся для всех поддерживаемых платформ. При этом библиотеки формируются как статические, так и динамические.

Также в этой версии произошел отказ от поддержки компилятора Borland C++ 5.0, в связи с его неудовлетворительной работой.

Кроме того, исправлены найденные ошибки.

| Версия 4.1.1 |

В этой версии только исправлены замеченные ошибки и устранены некоторые недоделки.

| Версия 4.1 |

В этой версии:

- Разработано API для поиска (файл ./src/fluids/libflu/searcher.c). Программы поиска (CGI модуль и flsearch) переписаны таким образом, чтобы использовать только это API и не применять низкоуровневых функций, работающих с индексными файлами. К сожалению, соответствующие библитеки (статические или динамические) пока не формируются, их создание отложено до версии 4.1.1.
- Начиная с этой версии программа flsearch более не различает принадлежность результата поиска тому или иному индексу; найденные ссылки сортируются и выдаются единым потоком.
- Кардинально улудшена схема поддерки Web-сервера Russian Apache:
  - Вне зависимости от того, осуществляет ли CGI модуль самостоятельную перекодировку или нет, производится экранирование русских букв в ссылках (что особенно важно для ссылок на другие результаты поиска); экранирование отключается установкой опции noEscapedURLs в конфигурационном файле)
  - Если CGI модуль определяет, что он исполняется из под сервера Russian Apache, то он отключает самостоятельную перекодировку в кодировку клиента, а генереруемые страницы выводит в кодировке, запрашиваемой сервером. В результате, если кодировкой по умолчанию у Russian Apache является одна из поддерживаемых FLUIdS, то отпадает необходимость прописывать в настройках Web-сервера директиву CharsetSourceEnc на CGI модуль.
- Введена возможность исключения из процесса индексации части гипертекстового файла. Это делается с помощью тегов <!--noindex--> и <!--/noindex-->, текст между ними не индексируется. (Теги должны быть именно такими, без дополнительных пробелов или других символов.)
- Особо необходимо отметить возможность объявления параметра компиляции FLUIDS_CONF_DIR в NULL.

| Версия 4.0.3 |

Новое в этой версии:

- Введена новая директива CharsetMethods конфигурационного файла индексации в разделы [defaults]/[job] для задания методов определения кодировки индексируемого файла и, заодно, порядка их применения.
- Добавлен параметр компиляции CHARSET_META_TAG_BYTES в файл ./src/cfg.h (он имеет отношение к методу ByMetaTag определения кодировки индексируемого файла).
- Добавлена директива face в раздел [index] конфигурационного файла CGI модуля, и переменная $INDEX_FACE в профильный файл результата поиска. По значению этой переменной теперь можно судить о принадлежности результата поиска тому или иному индексу. Например, профильный файл результата поиска может содержать такой текст:

          $if{ $INDEX_FACE == 1 }
              <img src="docs.gif">
          $else
              <img src="other.gif">
          $endif

  Здесь для индекса с face, равном единице, будет использована иконка docs.gif, для остальных же - other.gif.

- В стартовый и завершающий профильные файлы добавлена переменная $QUERY_FORM. Главная цель нововведения - позволить бланку запроса быть расположенным до результатов поиска, а не после, как принято по умолчанию.
  Внимание!!! Если Вы переопределили профильный файл EndResultFile, то в его конец необходимо добавить переменную $QUERY_FORM, в противном случае на странице с результатами поиска будет отсутсвовать бланк запроса...
- Для программы flindex добавлена опция вызова -o.

| Версия 4.0.2 |

Основным новшеством в этой версии является возможность определения кодировки индексируемых файлов по директиве CharsetSourceEnc файла доступа Web сервера (обычно это файл .htaccess). Эта возможность реализуется заданием в конфигурационном файле индексации имени файла доступа директивой AccessFile в разделах [defaults] и/или [job].

Кроме того, для программы flindex добавлена возможность чтения объектов индексации со стандартного входа (STDIN).

| Версия 4.0.1 |

Основной упор в этой версии был сделан на поддержку украинского и белорусского языков, которая включается установкой параметра компиляции UKRAINIAN_SUPPORT. В этой связи также представляют интерес параметры компиляции APPLY_CYR_RUSCII и APPLY_ISO_GHE. К сожалению, интерфейс на украинском языке пока отсутствует, поскольку отсутствует и переводчик.

Кроме того, исправлены обнаруженные ошибки.

| Версия 4.0 |

По сравнению с последней беттой произошли следующие изменения:

- Появилась поддержка "проэкций файлов" (вызов mmap()), соответствующим образом переработан код, чтоб избавиться от ставших ненужным копирований; в результате скорость обработки данных индексного файла еще немного возрасла.
- Изменился формат индексного файла, поэтому потребуется полная переиндексация.
- Усилен контроль за содежимым индексного файла.
- Исправлена ошибка в модуле поиска, приводившая к значительному замедлению процесса поиска на сложных запросах вида `"a* and b* or c*"` или `"*?ware"`.
- Система посчитана оттестированой в достаточной степени. Безусловно, это не означает, что в ней не осталось ошибок, ибо ошибки, как и атом, неисчерпаемы.

| Версия 4.0b5 |

Новое в 4.0:

- Платформо-независимый формат индексного файла.

- Введена эмуляция поиска с учетом регистра ключевых слов. Поисковая система теперь разпознает 4 разновидности слов:

- все буквы в слове - строчные (например, weekend, 11th);
- все буквы в слове - прописные (например, ММВБ, МОДУЛЬ0);
- первая буква в слове - прописная, остальные - строчные (например, Apache, Иванов, Н0ль);
- все остальное (например, 3DStudio, FLUIdS). В этом случае не делается различия между словами, отличающимися написанием строчных и прописных букв (например, слова FLUIdS и FLUiDS считаются эквивалентными).

  По умолчанию программа flsearch ищет в регистро-зависимом режиме (регистро-независимый задается опцией -i), а CGI модуль - в регистро-независимом. Чтобы заставить CGI модуль по умолчанию различать строчные и прописные буквы в запросе, можно вызвать CGI модуль с дополнительным параметром sf со значением cd:

    `<a href="fluids.cgi?sf=cd">Поиск</a>`

  или прописать этот параметр в бланке запроса:

    `<input type="hidden" name="sf" value="cd">`

- Усовершенствован формат индексного файла. В результате скорость поиска возрасла от полутора до нескольких раз.

- В ключевых словах поиска можно применять метасимволы `*` и `?` (причем в любом месте ключевого слова. И даже в начале, если при компиляции в файле ./src/cfg.h определен параметр SUBWORD_SEARCH). Ранее был разрешен только метасимвол `*`, и только на конце ключевых слов.

- При индексации возможно применение нескольких своп-файлов, причем сама скорость своппинга возрасла. В результате время индексации для больших объемов информации существенно сократилось.

- С помощью программы flmerge можно объединять сразу несколько индексных файлов (ранее можно было только два).

- Формат выхода программы flsearch теперь можно расширить, задав в командной строке опцию -e.

- Программа fldump теперь может выводить для данного индекса простой список проиндексированных файлов (опция -c) и список проиндексированных слов для данного проиндексированного файла (опция -n; имя файла (или URL), указанного при этой опции, должно в точности совпадать с каким-нибудь именем, хранимым в индексном файле). Также можно подавить выдачу данных заголовка индексного файла (опция -h).

- Размер индексного файла в этой версии минимален. Дальнейшее развитие поисковой системы будет приводить только к его росту.

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

- Добавлен Makefile для компиляции под MSVC++ 5.0 (makefile.vc5).

- Примеры и документация переписаны с учетом новых возможностей (версия документации не изменилась, так как ничего особо нового в нее не добавлено).

Важно отметить произошедшие изменения с точки зрения пользователя поисковой системы:

- во всех директивах конфигурационных файлов системы необходимо экранировать обратный слэш при указании имен файлов или директорий (мои извинения пользователям MS Windows 95/98/NT);
- существенно изменился конфигурационный файл индексации;
- в конфигурационном файле CGI модуля директивы FormBG и SearchBG переименованы в FormBackground и SearchBackground;
- отменены разные профильные файлы для различных моделей представления результатов поиска в CGI модуле; если есть необходимость задания различного формата для разных моделей, то можно использовать переменную профильных файлов `$MODEL_NUMBER` вкупе с оператором `$if`;
- в результативном профильном файле CGI модуля можно использовать переменную `$EXTRACT` в операторе `$if` для проверки существования куска текста из индексируемого файла.

В ближайших планах - поддержка украинского и белорусского языков, а также создание библиотеки для огранизации индивидуального поиска в индексных файлах системы FLUIdS.

На главную страницу | valera@sbnet.ru