Научная статья на тему 'Расширение функционала поискового механизма сайта программными средствами'

Расширение функционала поискового механизма сайта программными средствами Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
125
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ELASTIC SEARCH / ПОИСК / СКРИПТ / САЙТ / ИНДЕКСИРОВАНИЕ / ЭЛЕКТРОННЫЙ АРХИВ / SCRIPT / SITE / INDEXATION / CATALOGUE / ARCHIVE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Васецкий Алексей Михайлович, Лисовский Артём Александрович, Филиппова Елена Борисовна

Рассматриваются вопросы расширения возможностей стандартных поисковых скриптов для индексирования содержания сайтов, а также использование скрытых полей и других путей по расширению поиска с использованием синтаксиса POST-запросов. Для этого может использоваться программное обеспечение на основе.NET фреймворка без использования стандартных браузеров.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Васецкий Алексей Михайлович, Лисовский Артём Александрович, Филиппова Елена Борисовна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

GETTING ADVANCED FUNCTIONALITY OF SITE SEARCH ENGINE BY SOFTWARE MEANS

Improving of functionality of standard Elastic Search scripts are considered for the aim of indexation of site content. Using of hidden search fields and other ways were studied for the sample of electronic archive site. Special software was designed for making requests and processing responses for them. Verifying of this approach was performed for electronic archive site.

Текст научной работы на тему «Расширение функционала поискового механизма сайта программными средствами»

УДК 004.62, 004.623, 930.25

А. М. Васецкий*, А. А. Лисовский, Е. Б. Филиппова

Российский химико-технологический университет им. Д.И. Менделеева, Москва, Россия 125480, Москва, ул. Героев Панфиловцев, д. 20 * e-mail: amvas@muctr.ru

РАСШИРЕНИЕ ФУНКЦИОНАЛА ПОИСКОВОГО МЕХАНИЗМА ПРОГРАММНЫМИ СРЕДСТВАМИ

САЙТА

Рассматриваются вопросы расширения возможностей стандартных поисковых скриптов для индексирования содержания сайтов, а также использование скрытых полей и других путей по расширению поиска с использованием синтаксиса POST-запросов. Для этого может использоваться программное обеспечение на основе .NET фреймворка без использования стандартных браузеров.

Ключевые слова: Elastic Search; поиск; скрипт; сайт; индексирование; электронный архив.

В глобальной сети Интернет существует ряд сайтов, содержащих большие объёмы информации. В частности, к таковым относятся электронные архивы. Но при этом, поиск по ним имеет определённые недостатки. Стремление некоторых разработчиков переложить все функции непосредственно на поисковую систему при сокрытии информации о полной структуре записей и их каталоге, а также детали производимых обновлений создают немалые сложности исследователям, работающим с большим количеством просматриваемых записей.

Поисковые механизмы, такие как, например, Elastic Search [1] способны предоставлять гораздо больше информации, чем разрешается разработчиками через общедоступный интерфейс. Поскольку запрос к базе данных сайта отправляется, как правило, с помощью POST либо GET-методов, то существует возможность формировать их непосредственно на компьютере пользователя, а не браузером. Это позволяет более гибко конфигурировать запросы, обходить ограничения, которые накладывают разработчики сайтов, а также использовать поля, не доступные через интерфейс веб-страницы. Следует отдельно отметить и возможность программно формировать

автоматические последовательности запросов. Их легко использовать для каталогизации материалов сайтов.

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

После заполнением пользователем требуемых полей браузер собирает введённую информацию в т.н. JSON-структуру (JSON (JavaScript Object Notation) - формат обмена данными, основанный на языке JavaScript, Standard ECMA-262 - 3rd Edition.) и

с помощью метода POST, либо GET отправляет запрос на сервер. Метод GET имеет более ограниченный функционал и в данной статье не рассматривается. Далее, сервер возвращает обратно ответ в виде другой JSON-структуры. Информацию о запросах можно получить, например, перехватив запрос с помощью известных инструментов разработчика, имеющихся в наличии для ряда браузеров. В частности, использовались Dragonfly (браузер Opera), Postman (Google Chrome) и Firebug (Mozilla Firefox).

В качестве примера для каталогизации был выбран сайт электронного архива «Память народа» [2], но данный подход при некоторой модификации применим и к аналогичным поисковым механизмам других сайтов, например [3-4] и других.

Поля запроса для сайта [2] состоят из текстовых полей и полей дат, а также логического поля documenttype, преобразуемого к текстовому виду. В зависимости от раздела поисковые поля имели различный вид. Например, общий вид структуры запроса к разделу «Документы частей» выглядит следующим образом (приводится с сокращениями): {"query":{"filtered":{"query":{"bool":{"must":[{"bool": {"must_not":[], "should":[{"match_phrase": {'^осите^^ре":"Боевые донесения, оперсводки"}},

{"match _phrase":{"document_type":"npo4ue документы "}}], "minimum_should_match":1}},{"bool": {"must": [{"match _phrase":{" document_name":"100 сд"}}], "minimum_should_match":1}}]}},"filter":{"and": {"filters":

[]}}}},"fields":["id", "document_type","document_numb er","document_date_b","document_date_f',"document_ name","archive","fond","opis","delo", "datejrom","date _to","authors","geo_names", "operation_name","secr", "image_path", "delo_id","deal_type","operation_name"] ,"size":10,"from":0, "sort":{"document_date_b":"asc"}}

Здесь пользователь может заполнять с помощью интерфейса только поля documentname, documenttype, document_date_b, documentdatef authors, operation name в то время как поля fond, opis, delo, отвечающие за наиболее важные при цитировании архивных материалов поля «фонд»,

«опись» и «дело» на момент написания статьи пользователям не предоставлялись по неизвестным причинам.

Поле size отвечает за количество выдаваемых документов и по умолчанию равно 10.

Ответ на запрос выглядит следующим образом (Приводится только первая запись из десяти): ("took":11, "timed_out":false, "_shards":("total":5,"succ essful":5,"failed":0},"hits":("total":7222,"max_score":n ull, "hits":[("Jndex":"pamyat_2016_04_04","_type ":"d ocument","_id":"136499584","_score":null, "fields":("ar chive ":["ЦАМО "], "delo":["2"], "fond":["1043"], "docum ent_name":["Расчет выделяемых машин из 2 атб 100 сд на 22.6.41 ^"],"document_date_b":["1941-06-22"], "secr":["ns"],

"image_path"["Передача 070 КП097Р 1 С4_дела/ 1043-0000001-

0002f00000022.jpg"], "delo_id":[0], "id":[136499584], " document_date_f':["1941-06-22"],"document type ":["Планы "], "opis":["1 "], "authors":["100 сд,

капитан Загоруйчук"]}, "sort":[-900288000000]}, ]}}

Из этого многообразия полей исследователей интересуют только некоторые. В частности: total -общее количество найденных записей, id -индивидуальный номер записи; fond, opis, delo -фонд, опись, дело; document_name - название документа; document_date_b - начальная дата документа; authors - авторы документа. Остальные

поля являются либо не столь значимыми, либо техническими.

С целью каталогизации сайтов, использующих сходный механизм поиска, было разработано программное обеспечение на языке программирования С++ с использованием фреймворка .NET, в котором было реализован следующий функционал:

- формирование POST-запроса,

- кодирование POST-запроса в UTF8 формате,

- отсылка запроса,

- получение ответа и сохранение его в файл,

- обработка (расшифровка) ответа,

- сбор записей в таблицы каталога.

Для обеспечения индексации сайта POST-запросы подавались по датам, от 01.01.1941 до 31.12.1945.

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

В результате были получены 1826 текстовых файлов с JSON-структурами ответов на запросы.

Вторым этапом являлось выделение нужных значений. Поскольку формат записи представляет собой пару «ключ : значение», (например '^оситеП_уре":["Планы"]) то разделение подобных конструкций не представляло никаких технических сложностей. Также не потребовалось подключения никаких специализированных компонентов для расшифровки JSON-структур.

Рис. 1. Распределение записей по годам

Вся процедура расшифровки выполнялась специальной небольшой программой-парсером, которая в автоматическом режиме собирала полученные записи в бинарные книги MS Excel по годам. В итоге были каталогизировано больше трёх миллионов записей (рис. 1), и вся процедура заняла по времени всего лишь несколько дней.

Стоит отметить, что объём каждого из бинарных файлов Excel не превышал 50 Мб, что позволяет обычным исследователям достаточно свободно оперировать ими, не прибегая к помощи специализированных баз данных.

Использованный нами метод сканирования по датам не лишён недостатков, поскольку не охватывает документы вне этого временного диапазона, а также документы, не имеющие даты. Однако, для отработки концепции программного обеспечения, такой путь вполне подходил и позволил исключительно быстро индексировать абсолютное большинство всех документов раздела «Документы частей».

Задач каталогизировать материалы остальных разделов не ставилось, хотя в целом код программы изменяется незначительно при перенастройке на

другие разделы сайта. Это подтверждается ещё и тем фактом, что при изменении формата запросов, произведённом в мае 2016 года на сайте в связи с модификацией интерфейса поискового механизма, потребовались вносить минимальные изменения в код программы.

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

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

Каталогизация записей данного сайта производилось исключительно в научно-исследовательских целях и не предназначалось для коммерческого использования.

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

Васецкий Алексей Михайлович, старший преподаватель кафедры Информационных компьютерных технологий РХТУ им. Д. И. Менделеева, Россия, Москва.

Лисовский Артём Александрович, студент 4 курса бакалавриата факультета Информационных технологий и управления РХТУ им. Д. И. Менделеева, Россия, Москва.

Филиппова Елена Борисовна, к.т.н., доцент кафедры Информационных компьютерных технологий РХТУ им. Д. И. Менделеева, Россия, Москва.

Литература

1. Сайт Elastic [Электронный ресурс]. - Режим доступа: https://www.elastic.co/ (дата обращения 21.05.2016).

2. Архивный сайт «Память народа» [Электронный ресурс]. - Режим доступа: https://pamyat-naroda.ru (дата обращения 21.05.2016).

3. Обобщённый электронный банк данных «Мемориал» [Электронный ресурс]. - Режим доступа: https://www.obd-memorial.ru (дата обращения 21.05.2016).

4. Архивный сайт «Подвиг народа» [Электронный ресурс]. - Режим доступа: http://www.podvignaroda.mil.ru (дата обращения 21.05.2016).

Vasetskiy Alexei Mikhailovich*, Lisovskiy Artem Aleksandrovich, Filippova Elena Borisovna

D. Mendeleev University of Chemical Technology of Russia, Moscow, Russia * e-mail: amvas@muctr.ru

GETTING ADVANCED FUNCTIONALITY OF SITE SEARCH ENGINE BY SOFTWARE MEANS

Abstract

Improving of functionality of standard Elastic Search scripts are considered for the aim of indexation of site content. Using of hidden search fields and other ways were studied for the sample of electronic archive site. Special software was designed for making requests and processing responses for them. Verifying of this approach was performed for electronic archive site.

Key words: Elastic Search; script; site; indexation; catalogue; archive.

i Надоели баннеры? Вы всегда можете отключить рекламу.