Главная » Просмотр файлов » Разработка библиотеки для осуществления адаптивного поиска в базах данных Web-приложений (бакалаврская работа)

Разработка библиотеки для осуществления адаптивного поиска в базах данных Web-приложений (бакалаврская работа) (544459), страница 4

Файл №544459 Разработка библиотеки для осуществления адаптивного поиска в базах данных Web-приложений (бакалаврская работа) (Разработка библиотеки для осуществления адаптивного поиска в базах данных Web-приложений (бакалаврская работа)) 4 страницаРазработка библиотеки для осуществления адаптивного поиска в базах данных Web-приложений (бакалаврская работа) (544459) страница 42015-08-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

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) – автоматическая очистка ресурсов при работе с результатами поиска. Включение данного параметра накладывает определённые ограничения на процесс работы с результатами, что позволяет уменьшить требуемый объём памяти при работе с библиотекой.

3.4. Тестирование

Тестирование скорости работы библиотеки производилось в базах данных mSQL 3.9, Microsoft SQL Server 2008 R2, MySQL 5.5, Oracle 9i, PostgreSQL 9.1, SQLite 3.7 и InterBase 7.5 на выборках объёмом 5000, 10000, 25000 и 50000 текстов. Все тексты были сгенерированы с помощью сервиса «Яндекс.Рефераты». Каждый текс содержал около 1500 слов. Поисковые запросы, используемые при тестировании, содержали 3 – 5 слов, а соответствующие им результаты образовывали не менее 0,5% всего имеющегося массива данных. Тестирование проводилось при десяти различных ограничениях на максимальное число индексируемых слов: 100, 200, 300, 400, 500, 600, 700, 800, 900 и 1000 слов. В каждом случае временные показатели усреднялись по результатам 100 измерений. В общей сложности было проведено 28000 измерений.

Весь процесс тестирования осуществлялся в Ubuntu 12.04, дистрибутиве операционной системы Linux, на выделенном сервере следующей конфигурации: процессор Intel Xeon E3-1230 3.2 ГГц, 8 Гб оперативной памяти, 2x1000 Гб HDD SATA, 2 Гбит LAN.

В ходе тестирования наблюдался экспоненциальный рост времени поиска при увеличении числа индексируемых слов, что хорошо видно на графиках (рисунки 3.2 – 3.8).

Рис. 3.2. Зависимость времени выполнения поискового запроса
от числа проиндексированных слов в базе данных MySQL.

Рис. 3.3. Зависимость времени выполнения поискового запроса
от числа проиндексированных слов в базе данных Oracle.

Рис. 3.4. Зависимость времени выполнения поискового запроса
от числа проиндексированных слов в базе данных Microsoft SQL Server.

Рис. 3.5. Зависимость времени выполнения поискового запроса
от числа проиндексированных слов в базе данных mSQL.

Рис. 3.6. Зависимость времени выполнения поискового запроса
от числа проиндексированных слов в базе данных SQLite.

Рис. 3.7. Зависимость времени выполнения поискового запроса
от числа проиндексированных слов в базе данных PostgreSQL.

Рис. 3.8. Зависимость времени выполнения поискового запроса
от числа проиндексированных слов в базе данных InterBase.

Результаты тестирования показывают, что разработанная библиотека позволяет осуществлять адаптивный поиск информации на выборках из 50000 записей за приемлемое время – до 2,5 сек. В результате установки ограничений на число индексируемых слов для каждого пользователя можно добиться ускорения поиска в 10 – 20 раз. На небольших массивах данных (до 5000 записей) адаптивный поиск осуществлялся за время, не превышающее 0,2 сек, даже при ограничении в 1000 индексируемых слов на одного пользователя.

Для проверки механизма адаптации было написано Web-приложение с использованием разработанной библиотеки, позволяющее осуществлять адаптивный поиск в базе данных MySQL (рисунок 3.9). Область поиска данного приложения представляет собой несколько небольших текстов, сгенерированных с помощью сервиса «Яндекс.Рефераты», каждый из которых содержит слово «белый» (или его форму). Также во всех текстах в различных формах присутствуют прилагательные «красный» и/или «синий». Для наблюдения за распределением прилагательных «красный» и «синий» в результатах поисковой выдачи в верхней части Web-приложения находится схема их распределения.

Рис. 3.9. Общий вид Web-приложения для тестирования механизма адаптации.

На максимальное число индексируемых слов на одного пользователя (параметр words_limit) было установлено ограничение, равное 1. Процесс проверки адаптации результатов поиска заключался в последовательном выполнении трёх поисковых запросов: «белый», «красный», «белый». Полученные для каждого запроса схемы распределения форм прилагательных «синий» и «красных» представлены на рисунках 3.10 – 3.12.

Рис. 3.10. Схема распределения цветов в результате выполнения запроса «белый» в первый раз.

Рис. 3.11. Схема распределения цветов в результате выполнения запроса «красный».

Рис. 3.12. Схема распределения цветов в результате выполнения запроса «белый» во второй раз.

Поясним полученные распределения. Вначале таблица индексируемых слов пользователя была пуста, то есть системе ничего не было известно о предпочтениях пользователя. Поэтому в результате выполнения запроса «белый» в первый раз мы можем видеть равномерное распределение цветов на схеме. Слово «белый» попадает в таблицу индексируемых слов. После выполнения запроса «красный» система помещает слово «красный» в таблицу индексируемых слов, а слово «белый» оттуда удаляется, так как значение параметра words_limit равно 1. При повторном поиске слова «белый» мы наблюдаем эффект адаптации результатов – все результаты, содержащие формы прилагательного «красный» сместились в начало поисковой выдачи (влево на схеме).

Выводы по главе 3

Осуществлено проектирование, кодирование на языке PHP и тестирование программной библиотеки для осуществления адаптивного поиска в базах данных Web-приложений. Полученные в ходе тестирования результаты свидетельствуют о возможности успешного применения библиотеки при разработке Web-приложений.

ЗАКЛЮЧЕНИЕ

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

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

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

Описанные в ходе работы недостатки адаптивного поиска оставляют широкий простор для дальнейшего изучения данного направления информационного поиска.

ПРИЛОЖЕНИЯ

Приложение 1. Исходный код библиотеки

<?php

class DB

{

function &factory($type, $options = false)

Характеристики

Список файлов ВКР

Разработка библиотеки для осуществления адаптивного поиска в базах данных Web-приложений (бакалаврская работа).docx
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6508
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее