1
2
3 Лабораторная работа №2
Цель работы: настройка информационно-поисковой системы Яндекс. Сервер для работы с СУБД MySQL. Сравнение методом анализа иерархий встроенной в веб-приложение системы поиска, полнотекстового индекса, предлагаемого СУБД и информационно-поисковой системы Яндекс. Сервер.
Задачи работы:
1. Конфигурирование Яндекс. Сервера для работы с СУБД MySQL.
2. Проверка возможностей поисковой системы, встроенной в CMS WordPress.
3. Проверка возможностей поиска с использованием полнотекстового индекса, встроенногов СУБД MySQL.
4. Сравнение различных технологий поиска с использованием метода анализа иерархий.
3.1 Подготовка окружения
Для выполнения лабораторной работы необходимо иметь установленную и настроенную СУБД MySQL, а также веб-приложение WordPress. Данные программные продукты можно найти в дополнительном материале к данной лабораторной работе.
СУБД MySQL, а также веб-сервер Apache, необходимые для работы с WordPress собраны в пакет прикладных программ Denwer. Запуск Denwer осуществляется с помощью исполняемого файла run. exe из директории /WebServers/Denwer.

Для начала проверим функционирование установленной копии WordPress. Для этого в браузере откроем страницу http://wordpress/ Здесь мы видим установленную копию свободной системы управления содержимым WordPress.

Данная система используется как платформа для ведения блогов, но может быть дополнительно расширена модулями для решения более широкого круга задач. В качестве хранилища данных данная система использует СУБД MySQL. Мы будем использовать WordPress как интерфейс для управления данными, хранящимися в СУБД.
Версия WordPress, необходимая для выполнения данной лабораторной работы уже содержит минимально необходимый набор материалов, который может быть расширен. Вход в панель управления веб-приложением осуществляется по адресу http://wordpress/wp-admin/ Для входа нужно указать логин и пароль. В данной инсталляции логин и пароль – admin.
Панель управления Вы можете видеть на следующем рисунке:

3.2 Настройка Яндекс. Сервер для работы с MySQL
Для использования MySQL в качестве источника данных ее необходимо зарегистрировать как источник данных ODBC в системе. Для этого первоначально нужно установить MySql ODBC Connector и создать новый источник данных.
3.2.1 Установка MySQL ODBC Connector
Установка выполняется с использованием стандартного мастера установки:



3.2.2 Создание источника данных
Для создания источника данных перейдем в Администрирование – Источники данных ODBC.

Создаем новый пользовательский DSN путем нажатия на кнопку Добавить. Выбираем в качестве драйвера MySQL ODBC 5.1 Driver

Для дальнейшей настройки необходимо указать параметры в соответствии с приведенными на рисунке

Проверка подключения может быть проведена с использованием кнопки Test. На этом создание источника данных завершено.
3.2.3 Настройка Яндекс. Сервера
Для того, чтобы иметь возможность выполнять поиск по MySQL базе данных необходимо в файле конфигурации дополнительно указать параметры подключения к источнику данных:
<DataSrc id="odbcds"> # название источника данных Name: testOdbcSource <Odbcds> # название ODBC-источника данных DataSourceName : mysqlDataSource # запрос на выборку конкретного документа из БД DocQuery : SELECT post_title, id, post_content FROM wp_posts # условие фильтрации (для выборки одного документа) DocFilter : WHERE id=$1 # запрос для выборки списка документов UrlQuery : SELECT id FROM wp_posts # тип возвращаемых данных MimeType : text/html # кодировка документов Charset : utf-8 # поле, определяющее дату создания документа TimeStamp : post_date # путь к шаблону для индексирования Template : c:/doc. tmpl </Odbcds> </DataSrc> |
Также для индексирования необходимо создать файл шаблона документа (doc. tmpl) со следующим содержимым:
<HTML> <HEAD> <META NAME="m_time" CONTENT="$1"> <TITLE>$1</TITLE> </HEAD> <BODY> $3 </BODY> </HTML> |
Путь к данному файлу указывается в параметре Template источника данных. Данный шаблон используется при генерации страницы на основе полученных из MySQL данных, т. е. данные из базы сначала извлекаются, затем формируется страница по шаблону и после этого производится ее индексирование.
После повторного индексирования документов в индекс будут добавлены записи из базы данных. Запустим поисковый модуль и выполним поиск.
К сожалению, в виду ошибки в работе Яндекс. Сервера с ODBC источниками данных ссылка на документ формируется некорректно, в виду чего не всегда удается открыть документ из списка результатов поиска.
3.3 Использование встроенного в WordPress механизма поиска
В систему управления содержимым встроен собственный модуль поиска, которым можно воспользоваться введя поисковый запрос в специальное поле для ввода.

Поиск осуществляется на лету, без составления какого-бы то ни было индекса, что позволяет получить актуальные в любой момент времени данные.
3.4 Использование полнотекстового индекса MySQL
MySQL имеет возможность создания полнотекстового индекса, по которому возможно выполнение поиска. Каждая таблица MySQL может содержать несколько полнотекстовых индексов, которые формируются по нескольким полям.
Для создание полнотекстового индекса воспользуемся утилитой phpMyAdmin, которая доступна по адресу http://localhost/Tools/phpMyAdmin/
Выберем базу данных wordpress, перейдем в таблицу wp_posts. В представлении Structure выберем поля post_title и post_content, и нажмем кнопку Fulltext.

Таким образом мы создали полнотекстовый индекс в таблице wp_posts по двум полям. Напишем простой PHР-скрипт, который позволит нам выполнять запросы к MySQL.
<form action="ftsearch. php"> <table width="100%"> <tr> <td>Текст запроса:</td> <td><input type="text" name="q" style="width: 100%;" value="<?php echo $_GET['q']; ?>"></td> <td><input type="submit" value="Выполнить поиск"></td> </tr> </table> </form> <?php mysql_connect("localhost", "root", ""); mysql_select_db("wordpress"); if (!empty($_GET['q'])) { $q = "SELECT * FROM `wp_posts` WHERE MATCH (post_title, post_content) AGAINST ('".$_GET['q']."');"; $res = mysql_query($q) or die(mysql_error()); echo "<ul>"; while ($r = mysql_fetch_assoc($res)) { if ($r['post_status'] == 'publish') { if (!empty($r['post_title'])) { echo "<li><a href='http://wordpress/?p=".$r['ID']."' target='_blank'>".$r['post_title']."</a></li>"; } } } echo "<ul>"; } ?> |
Сохраним содержимое в файл ftsearch. php в директории /WebServer/home/wordpress/www/ и обратимся к нему в браузере по адресу http://wordpress/ftsearch. php
Здесь мы видим простой интерфейс, который выполняет запрос по одной таблице и выводит результаты в виде списка.

Использование полнотекстового индекса более предпочтительно, так как позволяет выполнять поиск не по четкому совпадению слова как, например, при использование встроенных механизмов WordPress, но, с другой стороны, он не обладает такими богатыми возможностями построения сложных запросов, которыми обладает Яндекс. Сервер. В случае простых запросов и небольших объемов хранилища использование поиска по полнотекстовому индексу является наиболее предпочтительным.
При необходимости, в полнотекстовый индекс может быть добавлено большее количество полей, а также создан индекс из нескольких таблиц.
3.5 Выбор системы поиска для веб-приложения методом анализа иерархий
3.5.1 Общая информация о МАИ
Метод Анализа Иерархий (МАИ) — математический инструмент системного подхода к сложным проблемам принятия решений. МАИ не предписывает лицу, принимающему решение (ЛПР), какого-либо «правильного» решения, а позволяет ему в интерактивном режиме найти такой вариант (альтернативу), который наилучшим образом согласуется с его пониманием сути проблемы и требованиями к ее решению.
Анализ проблемы принятия решений в МАИ начинается с построения иерархической структуры, которая включает цель, критерии, альтернативы и другие рассматриваемые факторы, влияющие на выбор. Следующим этапом анализа является определение приоритетов, представляющих относительную важность или предпочтительность элементов построенной иерархической структуры, с помощью процедуры парных сравнений.
Задачи принятия решения можно рассмотреть следующим образом:
Пусть имеются:
1. несколько однотипных альтернатив (объектов, действий и т. п.),
2. главный критерий (главная цель) сравнения альтернатив,
3. несколько групп однотипных факторов (частных критериев, объектов, действий и т. п.), влияющих известным образом на отбор альтернатив.
Требуется каждой альтернативе поставить в соответствие приоритет (число) – получить рейтинг альтернатив. Причем чем более предпочтительна альтернатива по избранному критерию, тем больше ее приоритет.
![]() |
Принятие решений основывается на величинах приоритетов.
3.5.2 Схема метода анализа иерархий
· После иерархического воспроизведения проблемы устанавливаются приоритеты критериев и каждая из альтернатив оценивается по проранжированным критериям.
· Сначала сравниваются попарно критерии для определения их приоритетов, поскольку на конечный выбор альтернативы критерии влияют по-разному в зависимости от их значимости.
· Затем аналогичным образом сравниваются и альтернативы по отношению к каждому из критериев.
3.5.3 Алгоритм МАИ
· Определение иерархии целей.
· Установление приоритетов критериев методом попарного сравнения.
· Установление приоритетов альтернатив по каждому критерию.
· Определение глобального приоритета альтернатив.
3.5.3.1 I этап – Составление иерархии целей
· Определение глобальной цели
· Определение промежуточных целей (подцелей)
· Определение критериев достижимости промежуточных целей
· Формирование альтернатив
3.5.3.2 II этап – Установление приоритетов критериев
· Формирование матрицы попарных сравнений критериев. (При определении численных предпочтений используется заданная шкала предпочтений одного сравниваемого объекта другому.)
· Ранжирование критериев
o Оценка компонент собственного вектора каждого критерия
o Нормализация оценок
· Оценка согласованности матрицы
Шкала предпочтений объектов
Степень превосходства (b) | Описание степени превосходства |
0 | Объекты не сравнимы |
1 | Объекты одинаково важны |
3 | Умеренное превосходство одного над другим |
5 | Существенное превосходство одного над другим |
7 | Значительное превосходство одного над другим |
9 | Абсолютное превосходство одного над другим |
2,4,6,8 | Промежуточные значения степеней превосходства |
Матрица попарного сравнения критериев
аij = b, аji = 1/b → матрица диагональная и обратно симметричная
Критерий 1 | ... | Критерий j | ... | Критерий n | |
Критерий 1 | 1 | ... | а1j | ... | а1n |
... | ... | ... | ... | ... | ... |
Критерий i | а i1 | ... | аij | ... | аin |
... | ... | ... | ... | ... | ... |
Критерий n | а n1 | ... | аnj | ... | 1 |
Ранжирование критериев
Оценка компонент собственного вектора каждого критерия
Нормализация оценок
![]() |
y iн показывает вклад каждого критерия в достижение цели
Оценка согласованности матрицы
Вычисление максимального собственного числа матрицы (λmax)
Вычисление индекса согласованности (ИС)
![]() |
Вычисление оценки согласованности (ОС)

Значения случайной согласованности (СС)
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
СС | 0 | 0 | 0,58 | 0,9 | 1,12 | 1,24 | 1,32 | 1,41 | 1,45 | 1,49 |
ОС ≤ 0,1 матрица согласованна
0,1<ОС ≤ 0,2 согласованность матрицы приемлема
ОС > 0,2 согласованность матрицы не приемлема
Сводная таблица для расчета приоритета критериев/альтернатив
Критерий 1 | ... | Критерий j | ... | Критерий n | yi | yiн | λi | |
Критерий 1 | 1 | ... | а1j | ... | а1n | y1 | y1н | λ1 |
... | ... | ... | ... | ... | ... | ... | ... | … |
Критерий i | а i1 | ... | аij | ... | аin | yi | yiн | λi |
... | ... | ... | ... | ... | ... | … | … | … |
Критерий n | а n1 | ... | аnj | ... | 1 | yn | ynн | λn |
Суммы по столбцу | K1 | … | Kj | … | Kn | Y | 1 | λmax |
3.5.3.3 III этап – Установление приоритетов альтернатив по критериям
Альтернативы сравниваются попарно с целью получения локальных векторов приоритета по каждому критерию.
Матрица попарных сравнений альтернатив по i-му критерию
Альтернатива 1 | ... | Альтернатива i | ... | Альтернатива k | |
Альтернатива 1 | 1 | ... | x1j | ... | x1k |
... | ... | ... | ... | ... | ... |
Альтернатива i | x i1 | ... | xij | ... | xik |
... | ... | ... | ... | ... | ... |
Альтернатива k | x k1 | ... | xkj | ... | 1 |
В результате для каждого i-го критерия будет получен нормализованный вектор приоритетов альтернатив
x1iн, …, хkiн.
IV этап – Определение глобального приоритета альтернатив
Крит. 1 | Крит. 2 | … | Крит. j | … | Крит. n | Оценка | |
Нормализованный вектор приоритетов критериев | y1н | y2н | … | yjн | … | ynн | |
Альтернатива 1 | x11н | x12н | … | x1jн | … | x1nн | A1 |
… | … | … | … | … | … | … | … |
Альтернатива k | xk1н | xk2н | … | xkjн | … | xknн | An |

Aopt=max Ai
3.6 Задание для самостоятельного выполнения
На основе метода анализа иерархий произвести сравнение поисковых механизмов для веб-приложения на основе следующих критериев (3 указанных и 2 добавить самостоятельно):
· Удобство использования
· Скорость поиска
· Сложность конфигурирования
Альтернативы:
· Яндекс. Сервер
· Встроенный поиск в веб-приложение
· Встроенный поиск в СУБД
3.7 Отчет о лабораторной работе
Отчет по лабораторной работе должен включать в себя:
1. Титульный лист, название, цель работы
2. Скриншоты результатов поиска с использованием различных средств
3. Результаты выбора механизма поиска с использованием метода анализа иерархий
4. Выводы о проделанной работе





