УДК 004.04
Разработка подсистемы полнотекстовой индексации и полнотекстового поиска для платформы облачного контент-репозитория
1,
2,
2,
1. Пермский государственный национальный исследовательский университет, Механико-математический факультет, каф. Процессов управления и компьютерной безопасности
Россия, 5.
2. Пермский государственный гуманитарно-педагогический университет, факультет информатики и экономики, каф. Прикладной информатики
Россия, 2.
Ставится задача разработать подсистему полнотекстовой индексации и полнотекстового поиска для платформы облачного контент-репозитория C2R.
Ключевые слова: облачный контент-репозиторий, облачное хранилище, полнотекстовая индексация, полнотекстовый поиск, поисковая система, большие данные, bigdata, NoSQL, Hadoop, HDFS, HBase, Lily, Solr, C2R, C2R Archivarius
© , , 2014.
1. Предисловие
В настоящее время доля информации, окружающей нас, очень велика также, как и личностная мобильность, поэтому возрастает популярность облачных хранилищ как средств быстрого и легкого доступа к необходимым файлам, и для большего удобства необходимо создание и внедрение в платформу облачного хранилища системы автоматической индексации и многофункционального поиска для ускорения поиска необходимого файла или группы файлов на определенную тематику и по указанным параметрам.
На существующих в данный момент облачных хранилищах недостаточно качественно и полно реализованы полнотекстовая индексация и полнотекстовый поиск, что усложняет поиск необходимого файла. Проведение поиска возможно только по заголовку или названию файла, содержимое файла не индексируется, следовательно, невозможно совершить полнотекстовый поиск. Разрабатываемая подсистема решает данную проблему в пределах конкретного облачного контент-репозитория. Полученная разработка позволит определить истинную необходимость и важность данного метода поиска необходимых файлов.
Полнотекстовые поисковые системы индексируют все слова на Web-странице (иногда за исключением стоп-слов) и учитывают порядок их расположения. В отличие от них абстрактные поисковые системы по определенному алгоритму создают некий экстракт проиндексированной страницы [1, с.11].
Наиболее крупными поисковыми системами (или сервисами), используемыми в России, в настоящее время являются:
Google Search (Google Inc.);
Bing (Microsoft);
Поиск@***** (***** Group);
Яндекс.Поиск (Яндекс);
Rambler (Rambler);
Yahoo! (Apple Inc.).
В конце мая 2014 года был запущен еще один российский поисковый сервис «Спутник» - это государственная безрекламная поисковая система, имеющая широкий функционал.
В ходе проведенного исследования были проанализированы все указанные выше системы, облачные хранилища, смежные с данными системами, их интерфейсы и функционал простого и расширенного поиска. В результате был сделан вывод о неразвитости ниши поисковых систем облачных хранилищ, и поэтому сравнительный анализ функционала разрабатываемой системы проводился с функционалом расширенного поиска поисковых систем. Для данного анализа был выделен 41 критерий для сравнения. В результате исследования лидирующее место заняла платформа Apache Solr, набрав 33 пункта, второе место – Яндекс. Поиск с 24 пунктами и третье место – Google Search с 23 пунктами. Лидерство Apache Solr подтверждает необходимость разработки и внедрения данной подсистемы на платформу облачного хранилища контент-репозитория C2R.
Solr обладает более широким функционалом, чем существующие поисковые системы, что значительно влияет на качество поиска и обработку результатов поиска и, как следствие, степень удовлетворения потребностей пользователя.
2. Разработка подсистемы полнотекстовой индексации и полнотекстового поиска для платформы облачного контент репозитория C2R.
Контент-репозиторий C2R имеет следующую структуру:
1. нереляционная база данных HBase, используемая в качестве для хранения контента;
2. облачный масштабируемый контент-репозиторий Lily;
3. распределенная файловая система HDFS;
4. Поисковая платформа Apache Solr.

Рис.1. Структура контент-репозитория Lily и структурная схема взаимодействия
Разрабатываемая подсистема строится на основе платформы Solr. Это расширяемая поисковая платформа от Apache. Особенности её в том, что она представляет собой не просто техническое решение для поиска, а именно платформу, поведение которой можно легко расширять, менять, настраивать под любые нужды - от обычного полнотекстового поиска на сайте до распределённой системы хранения, получения, аналитики текстовых и других данных с мощным языком запросов.
Разработка системы включает 4 этапа:
1. перевод официальных инструкций к программному средству, формирование описания по каждому парсеру запросов (обработчику запросов), отбор необходимых функций и их параметров;
2. конфигурирование Solr - настройка автоматической полнотекстовой индексации и настройка значений по умолчанию для некоторых параметров поисковой системы;
3. тестирование полностью настроенной поисковой платформы путем создания тестирующих (результирующих) файлов;
4. разработка интерфейсов простого и расширенного поиска для платформы C2R Archivarius, являющейся надстройкой над облачным контент-репозиторием C2R.
На первом этапе были отобраны 7 функций Solr:
1. Standard Query Parser – Стандартный обработчик запросов, который позволяет делать очень точные запросы, но при этом есть и недостаток – он не терпит синтаксических ошибок;
2. DisMax Query Parser – обработчик запросов DisMax, предназначен для обработки простых фраз без сложного синтаксиса и поиска конкретных условий по нескольким полям с помощью различных уточнений, основанных на значении каждого поля;
3. eDisMax Query Parser – улучшенная версия парсера запросов DisMax, помимо функций DisMax имеет такие функции, как поддержка полного синтаксиса парсера запросов Lucene, поддержка операторов AND, OR, NOT, «+» и «-», усовершенствованная обработка стоп-слов и многие другие;
4. Highlighting – функция подстветки результатов, позволяет выделять фрагменты документов, которые соответствуют запросу пользователя и включены в ответ на запрос;
5. Faceting - фасетирование – расположение результатов поиска в категории на основе индексируемых условий;
6. Spell Checking – Функция проверки правописания;
7. Spatial Search – пространственный поиск.
Второй этап – конфигурирование. HBase не решает всех задач, необходимых для функционирования репозитория, и эту проблему решает репозиторий Lily. Репозиторий Lily создает индекс и привязывает его к ядру Solr. Эту задачу решает один из компонентов Lily - Indexator. Indexator – это компонент, ответственный за то, что усовершенствовал индекс Solr. Индексатор берет записи репозитория Lily и помещает их в Solr. Индексатор делает это в ответ на асинхронно обрабатываемые события, созданные репозиторием.
Для большего удобства добавления нового индекса в индексатор был разработан средствами языка программирования Java генератор схемы индекса Index Schema Generator.
Создание индекса состоит из пяти простых шагов. После добавления индекса Генератор создает файл схемы индекса indexerconf.xml, в котором каждому значению поля в Lily присвоено значение поля в Solr.
Таким образом настраивается полнотекстовая индексация. Данные файла indexerconf.xml при дальнейшем конфигурировании становятся частью другого файла схемы – схемы самой поисковой платформы – schema.xml.
Второй файл конфигурирующий Solr – config.xml. В нем настраиваются общие параметры, а также значения по умолчанию для параметров каждой функции.
На третьем этапе проводится тестирование поисковой платформы через платформу сервера Solr.

Рис.2. Страница запроса платформы Solr на платформе C2R Archivarius
Через интерфейс платформы был формирован запрос на каждый параметр поисковой системы. Всего было сформировано 115 результирующих (тестирующих) файлов. Полученные файлы будут использоваться для тестирования новых серверов.
Завершающий этап работы – разработка интерфейсов.
Адрес надстройки Archivarius облачного контент-репозитория C2R - http://archivarius. *****/. Archivarius построен средствами web-программирования: HTML, CSS, PHP. Для доступа к сервису необходимо пройти процедуру регистрации/авторизации.

Рис.3. Страница регистрации/авторизации репозитория C2R Archivarius
Интерфейс сервиса C2R Archivarius состоит из шести вкладок, одна из которых «Поиск». Функционал данной вкладки основан на разрабатываемой подсистеме полнотекстовой индексации и полнотекстового поиска на основе поисковой платформы Solr. Кроме того, простой поиск по контенту хранилища доступен на любой вкладке, так как вверху страницы расположено поле для ввода запроса.
Кроме того, вкладки «Теги» и «Кластеры» также построены на основе Solr, но на других функциональных возможностях.
Welcome-страница поиска состоит из одного поля для введения запроса. По умолчанию, поиск идет в поле q. alt парсера запросов eDisMax по параметру file_blob, при этом парсер DisMax также включен.

Рис.4. Welcome-страница Поиска в репозитории «C2R Archivarius»
Сформируем запрос на поиск файлов, содержащих условие «bigdata», и выполним поиск.
Результаты поискового запроса выводятся в виде дерева директории. Вторым уровнем директории является пользователь, добавивший этот файл. С третьего уровня идут папки и файлы. При наведении курсора на файл появляется его описание, содержащее информацию о добавившем пользователе, размере файла, ключевых словах, заголовке файла, авторе и дате добавления. При нажатии на имя файла он либо загружается (скачивается), если это текстовый, табличный или подобный формат, либо открывается страница в новой вкладке, если это html, либо открывается изображение также в новой вкладке.

Рис.5. Результаты запроса «bigdata» на странице Поиска в надстройке «C2R Archivarius» с описанием одного файла
Помимо этого, был разработан интерфейс расширенного поиска, позволяющий добавлять условия поиска, выбирать поле, в котором будет производиться поиск, выставлять приоритет для каждого условия, добавлять оператора поиска (AND, OR, NOT, + или -), искать в интервале дат, выбирать язык документа.

Рис.6. Интерфейс Расширенного поиска надстройки C2R Archivarius
3. Заключение
Подводя итог выполнения работы, можно сделать следующие выводы о достигнутых результатах:
1. проведен теоретико-аналитический обзор предметной области;
2. рассмотрены теории реляционных и NoSQL баз данных, их преимущества и недостатки;
3. разобрана структура и интерфейс контент-репозитория C2R (Lily, Solr, HDFS Apache Hadoop), NoSQL базы данных HBase;
4. рассмотрено понятие поисковых систем и проведен обзор существующих поисковых систем, внедренных в облачные контент-репозитории;
5. проанализирован рынок поисковых систем облачных хранилищ и сделан вывод о неразвитости данной ниши;
6. проведен сравнительный анализ по 41 критерию на основе функций расширенного поиска поисковых систем и применяемой Apache Solr;
7. описаны функции и возможности Apache Solr посредством перевода в объеме 34 тыс. слов и изучения инструкций к указанному программному обеспечению с официального сайта;
8. отобраны необходимые функции, которые позднее были настроены для конечного пользователя;
9. освоены алгоритмы индексации, поиска и параметры настройки индексатора Apache Solr;
10. разработан Генератор схемы индексов;
11. проведено тестирование настроенной для C2R поисковой платформы Solr путем создания 115 результирующих файлов;
12. разработаны интерфейсы простого и расширенного поиска для платформы C2R Archivarius посредством HTML, CSS и PHP;
13. сверх заявленных страниц интерфейса разработаны страницы, построенные по функции Faceting – простая и много уровневая проекции;
14. как итог полностью спроектирована и разработана подсистема полнотекстовой индексации и полнотекстового поиска для платформы облачного контент-репозитория;
15. проведен расчет экономической эффективности по маркетинговым метрикам (Интернет-маркетинг), в результате которого эффективность была доказана;
16. в ходе проведения работы доказана необходимость полнотекстовой индексации и полнотекстового поиска для конечного пользователя или компании.
Поданному проекту была выдана Справка о реальности проекта от -вычислительные системы», в которой говорится, что проект находится в стадии пилотной эксплуатации на полигоне -вычислительные системы».
Дальнейшие планы по развитию проекта включают в себя доработку интерфейсов для функций DisMax, eDisMax и Spatial Search на понятный пользователю язык, разработку кластеризации, разработку алгоритмов и систем на основе искусственного интеллекта, предназначенных для анализа запросов, файлов и действий пользователя на сервисе, что позволит использовать эти данные в качестве сырьевого материала бизнеса, жизненно важного сырьевого вклада, используемого для создания новой экономической выгоды. При правильном подходе эти данные можно использовать повторно как источник инноваций и новых услуг.
Технология «больших данных», используемая в данном проекте – это грядущее революционное явление, равнозначное Интернету, это новая наука, способная предсказывать будущее на основе быстрой обработки огромных массивов информации и мгновенного их анализа. Технология не ограничивает фантазию разработчиков и позволяет с помощью растущей вычислительной мощности совершать невиданные прежде открытия и прогнозы.
Кроме того, это легкодоступное облачное хранилище с функцией полнотекстовой индексации и полнотекстового поиска. Ни одно из популярных облачных контент-репозиториев не обладает настолько широким функционалом.
Библиографический список
1. Бетина, -аналитические понятия [Электронный ресурс] / , . - Тамбов: Издательство ТГТУ, 20с. Режим доступа: http://*****/index. php? page=book&id=39351
2. Майер-Шенбергер, В. Большие данные. Революция, которая изменит то, как мы живем, работаем и мыслим / Виктор Майер-Шенбергер, Кеннет Кукьер ; пер. с англ. Инны Гайдюк. – М. : Манн, Иванов и Фербер, 2014. – 240 с.
3. Разработка свободно распространяемого контент-репозитория для развёртывания информационных систем на принципах «облачных» вычислений: отчет о выполнении НИОКР. – Пермь, 2010. – 29 с.
4. Фаулер, М. NoSQL: новая методология разработки нереляционных баз данных.: Пер. с англ. / Мартин Фаулер, Прамодкумар Дж. Садаладж – М.: . Д. Вильямс», 2013. – 192с.
5. http://lucene. apache. org/solr/ - Описание поисковой платформы Solr
6. https://cwiki. apache. org/confluence/display/solr/Apache+Solr+Reference+Guide – справочное руководство Apache Solr
7. https://cwiki. apache. org/confluence/display/solr/Indexing+and+Basic+Data+Operations – Индексация и основные операции с данными
8. https://cwiki. apache. org/confluence/display/solr/Searching - Поиск
9. http://docs.ngdata.com/lily-docs-current/ext/toc/ - Описание функционала платформы Lily
10. https://onedrive. /about/en-us/plans/ - Прайс сервиса OneDrive for Business от Microsoft
Development of a subsystem, consisting of full-text indexing and full-text searching, for the platform of the cloud content repository
Okunev A. A.1,
Simakina N. I.2,
Shipulina K. V.2,
1. Perm State National Research University, Mechanic and mathematical faculty
2. Perm State University of Humanities and Education, Faculty of Computer Science and Economics, Department of Applied Informatics
Russia, Perm, Pushkina st., 42
The aim is to develop a subsystem, consisting of full-text indexing and full-text searching, for the platform of the cloud content repository, called C2R.
Keywords: cloud content repository, cloud storage, full-text-indexing, full-text searching, bigdata, NoSQL, Hadoop, HDFS, HBase, Lily, Solr, C2R, C2R Archivarius
© Okunev A. A., Simakina N. I., Shipulina K. V., 2014.


