
- •Национальный исследовательский
- •Аннотация
- •The annotation
- •Введение
- •1. Анализ предметной области
- •1.1. Основные понятия информационного поиска
- •1.2. Задачи информационного поиска
- •1.3. Методы информационного поиска
- •1.4. Адаптивный поиск информации
- •1.5. Проблемы адаптивного поиска
- •Выводы по главе 1
- •2. Алгоритм адаптивного поиска информации
- •Выводы по главе 2
- •3. Разработка программной библиотеки
- •3.1. Проектирование
- •3.2. Системные требования
- •3.3. Настройка параметров адаптивного поиска
- •3.4. Тестирование
- •Выводы по главе 3
- •Заключение
- •Приложения Приложение 1. Исходный код библиотеки
- •Приложение 2. Значения кодов состояний
- •Национальный исследовательский университет «мэи»
- •Задание н а в ы п у с к н у ю р а б о т у
- •Содержание разделов задания и исходные данные
- •Перечень графического материала
- •Рекомендуемая литература
- •Библиографический список
- •Содержани
3.2. Системные требования
Для использования библиотеки необходимо, чтобы сервер удовлетворял следующим системным требованиям:
наличие PHP версии 5.0 (или выше);
поддержка модуля mbstring.
Расширение веб-сервера mbstring позволяет использовать функции для работы с многобайтными строками. mbstring не входит в список расширений, устанавливаемых по умолчанию. Это значит, что изначально это расширение отключено. Для использования функций этого расширения необходимо явно включить модуль в настройках конфигурации веб-сервера.
3.3. Настройка параметров адаптивного поиска
Несмотря на то, что значения параметров по умолчанию подобраны таким образом, чтобы оптимизировать скорость работы библиотеки и не допустить чрезмерного роста таблицы индексируемых слов, может потребоваться изменить те или иные параметры. Значения параметров изменяются с помощью метода setOption() класса DB_common, принимающего два аргумента: название параметра и устанавливаемое значение. В идеале параметры адаптивного поиска должны подбираться, исходя из специфики конкретной задачи.
Дадим подробное описание изменяемых параметров адаптивного поиска. В скобках указаны значения по умолчанию.
users_words_table_name (adaptive_search_users_words) – имя таблицы в базе данных для хранения ключевых слов пользователей. Если во время поиска таблица с таким именем не будет найдена в базе данных, то она будет создана автоматически. Таким образом, указав специализированное имя, можно использовать уже имеющуюся в базе данных таблицу ключевых слов пользователей.
users_words_table_charset (utf8) – кодировка таблицы для хранения ключевых слов пользователей. По умолчанию используется UTF-8 (от англ. Unicode Transformation Format) – наиболее распространённая в настоящее время кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. В отличие от UTF-16, UTF-8 является самосинхронизирующейся кодировкой: при потере одного байта последующие байты будут раскодированы корректно.
users_keys_table_name (adaptive_search_users_keys) – имя таблицы в базе данных для хранения идентификаторов и индивидуальных ключей пользователей. Если в момент идентификации пользователя таблица с таким именем не будет найдена в базе данных, то она будет создана автоматически. Таким образом, указав специализированное имя, можно использовать уже имеющуюся в базе данных таблицу индивидуальных ключей пользователей.
user_id (NULL) – идентификатор текущего пользователя. Именно по данному идентификатору будет осуществляться привязка результатов поиска к конкретному пользователю. Так как большинство web-приложений имеют собственный механизм аутентификации, то получение идентификатора текущего пользователя не представляет особого труда. По умолчанию библиотека сама сгенерирует уникальный идентификатор для пользователя, сохранит его в cookies в зашифрованном виде и в таблице идентификаторов пользователей базы данных.
max_word_length (15) – максимальная длина индексируемого слова. Рекомендуется указывать этот параметр для предотвращения хранения слишком длинных индексируемых слов. В отдельных случаях специфика области поисковых запросов может потребовать увеличения значения этого ограничения. Кроме того, указав в качестве значения параметра NULL или false, можно снять ограничения на максимальную длину индексируемого слова.
min_word_length (3) – минимальная длина индексируемого слова. Рекомендуется указывать этот параметр для предотвращения хранения слишком коротких индексируемых слов. Как правило, такие слова лишь «засоряют» таблицу индексируемых слов. В отдельных случаях специфика области поисковых запросов может потребовать уменьшения значения этого параметра. По аналогии с параметром max_word_length, можно указать в качестве значения NULL или false и тем самым снять все ограничения на минимальную длину индексируемого слова.
words_lifetime (NULL) – продолжительность хранения (секунд) индексируемых слов в базе данных. Если указано значение параметра, то устаревшие слова будут удаляться из базы данных, не допуская её переполнения. Также данный параметр может использоваться для предотвращения ситуаций, когда устаревшие поисковые запросы оказывают своё влияние на результаты поисковой выдачи.
words_limit
(1000) – ограничение на максимальное число
индексируемых слов на одного пользователя.
Если указано числовое значение параметра,
то устаревшие и редко запрашиваемые
слова будут удаляться из базы данных
по мере надобности, не допуская её
переполнения. Также данный параметр
может использоваться для предотвращения
ситуаций, когда устаревшие или редко
используемые слова поисковых запросов
оказывают своё влияние на результаты
поисковой выдачи. При настройке данного
параметра необходимо учитывать общее
число пользователей системы. Так,
например, если в системе зарегистрировано
1000 пользователей, а значение параметра
words_limit
равно 1000, то таблица индексируемых слов
через некоторое время может иметь
строк.
adaptive (true) – переключатель адаптации результатов поиска. Если параметр установлен в false (выключен), то будет производиться обычный (не адаптивный) поиск. Отключение адаптивного поиска может потребоваться при отладке и тестировании работы основного приложения.
cookie_user_id_name (adaptive_search_user_id) – имя cookie для хранения зашифрованного идентификатора пользователя.
cookie_user_id_lifetime (2592000) – продолжительность хранения (секунд) зашифрованного идентификатора пользователя в cookie. Если в течение данного времени не будет сделано ни одного поискового запроса, для пользователя будет сгенерирован новый идентификатор.
cookie_hash_algo (sha256) – алгоритм хеширования, используемый при шифровании идентификатора пользователя. Список доступных при разработке алгоритмов может быть получен с помощью PHP функции hash_algos().
highlight (false) – автоматическая подсветка результатов поиска. По умолчанию слова поискового запроса не подсвечиваются в тексте результатов при выводе. Подсветка может быть получена с помощью специального метода библиотеки, либо включением данного параметра. Подсвеченные слова заключаются в тег <span> с классом “hl”.
autofree (false) – автоматическая очистка ресурсов при работе с результатами поиска. Включение данного параметра накладывает определённые ограничения на процесс работы с результатами, что позволяет уменьшить требуемый объём памяти при работе с библиотекой.