BI-поиск в «Форсайт. Аналитической платформе»

Ирина Башкова, Александра Корекова

«Загугли!» – все чаще говорим мы друг другу. Поиск необходимой информации среди огромного объема имеющейся стал неотъемлемой частью не только нашей повседневной жизни, но и работы, особенно если речь идет о больших данных. Давайте разберемся, что значит «загугли» применительно к BI и как это представлено в продукте «Форсайт. Аналитическая платформа».

BI-поиск – друг человека

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

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

Хороший BI-поиск действительно выполняет функцию настоящего друга – он понимает пользователя и помогает найти необходимую информацию за минимальное время. BI-поиск знает, что вам нужно, и готов предложить наилучшие варианты, соответствующие вашему запросу.

Без этого поиск не понять…

Для того чтобы реализовать одну из важнейших функций BI-поиска, а именно возвращение наиболее релевантных запросу пользователя результатов, необходимо воспользоваться платформой полнотекстового поиска. Мы выбрали для этих целей платформу Apache Solr.

Solr – это платформа полнотекстового поиска с открытым исходным кодом, написанная на Java. Основой для этой платформы является библиотека Apache Lucene. В общих словах, к основным возможностями Solr можно отнести:

• непосредственно полнотекстовый поиск;

• использование синонимов при поиске;

• управление релевантностью поиска;

• подсветка результатов;

• фасетный поиск (немного об этом здесь https://wiki.apache.org/solr/SolrFacetingOverview);

• извлечение контента документов (например, Word, PDF и т.д.).

Solr, как отдельное веб-приложение, запускается внутри какого-либо сервера, например, Apache Tomcat или Jetty.

Больше узнать о Solr можно тут - http://lucene.apache.org/solr/ и тут https://wiki.apache.org/solr/.

BI-поиск в «Форсайт. Аналитической платформе»

В платформе BI-поиск представляет собой полнотекстовый поиск по содержимому и наименованию источников данных (стандартных кубов и БДВР). В механизм поиска также включена и индексация этих источников на основе их измерений и наличия данных.

Реализован BI-поиск в инструментах экспресс-анализа (OLAP) и в аналитических панелях (Dashboards). Его результаты можно отобразить с помощью визуализаторов, доступных в этих инструментах.

Неоспоримые возможности и удобства BI-поиска в платформе:

• учет словоформ и синонимов;

• гибкое управление релевантностью;

• формирование ключевых слов для увеличения релевантности поиска;

• возможность мультиязычной индексации\поиска;

• подсветка найденных результатов;

• семантическое формирование поискового запроса к Solr на основании входного запроса пользователя;

• индексация и поиск пользовательских сущностей;

• индексация и поиск объектов репозитория.

Затрагивая вопросы индексации (*) данных, отметим ее следующие преимущества:

• использование контейнера задач для запуска процесса индексации (очень удобная штука);

• возможность частичного обновления индекса;

• настройка параметров индексации через пользовательский интерфейс.

Что касается непосредственно поиска, то здесь в вашем распоряжении:

• фасетный поиск;

• расширение настроек поиска: фильтрация, сортировка, задание формулы для управления релевантностью поиска;

• привнесение семантики в формирование запроса к Solr;

• помощь в генерации файла с синонимами.

Relax. Take it easy!

Давайте рассмотрим пример, раскрывающий все (или почти все) возможности BI-поиска.

Допустим, вам интересно узнать что-нибудь, связанное с нефтью, Россией и 2010 годом. Вводим в поисковую строку, например, запрос «нефть Россия 2010». В результате мы видим, что данная информация содержится в двух источниках данных: «Показатели мирового развития» и «IMF – Перспективы развития мировой экономики».

Однако первый источник нас не интересует. Тогда добавим в запрос слово «IMF», и вуаля! В результатах поиска только данные, относящиеся к нужному источнику. Снова выбрав результаты поиска и удобный способ отображения, вы будете готовы к дальнейшему анализу данных.

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

Поисковая модель данных для объекта репозитория содержит в себе:

• ключ;

• идентификатор;

• наименование;

• идентификатор класса;

• наименование класса;

• описание;

• дату изменения;

• контент (если объект – документ).

Маленькие радости большой индексации

Не запускать же вручную

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

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

В контейнере отвечает за это тип задачи «Обновление поискового индекса», а диалог настройки задачи выглядит так:

Очень удобно, особенно если данные обновляются ежедневно. И правда, не запускать же каждый день индексацию вручную.

Не писать же все время код

В платформе существует возможность задания настроек для индексации (и немного для поиска) через интерфейс. Действительно, не писать же все время код.

Пример настройки до Solr.

Пример конфигурирования пользовательских полей:

Сами с усами, или «умный» поиск

Давайте попробуем разобраться, зачем в действительности может понадобиться «умный» поиск. Несложно догадаться, что он необходим для улучшения релевантности. Постараемся вникнуть в механизм его работы.

Начнем с теории для понимания. Или, другими словами, для понятий, которыми мы оперируем, работая с BI-поиском.

Свободное измерение – это измерение, по которому производится поиск, но элементы такого измерения не включаются в наименование результата поиска.

Пример: пусть в источнике имеется два измерения «Показатели» и «Территории».

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

Пример результата поиска по индексу источников со свободным измерением «Территории»:

Вариант №2: Если в параметрах индексации не указать ни одного свободного измерения, то наименование результата поиска формируется так: Территория | Показатель. Пример результата поиска по индексу источников без свободных измерений (страна «Россия» вошла в наименование результата поиска).

Для понимания механизма работы «умного» поиска необходимо также упомянуть о том, как происходит формирование запроса для поиска по документам Solr.

Пусть пользовательский запрос «ВВП России», а поисковый документ (**) состоит из двух полей (***) – name и freeDimensions, тогда в общем случае (без свободных измерений) запрос к Solr формируется так:

name: (ВВП OR России) AND freeDimensions: (ВВП OR России).

Т.е. в каждом поле ищется каждое слово.

(*): Для того чтобы что-то искать, нужно это что-то куда-то положить. В нашем случае «что-то» – это содержимое источников данных, а «куда-то» – это индекс Solr. А процесс перекладывания «что-то» в «куда-то» называется индексацией.

(**): Индексация из (*) занимается тем, что формирует эти самые поисковые документы, среди которых мы ищем и, если что-то нашлось, то это добавляется в результат поиска.

(***): Поисковые документы из (**) состоят из полей (подробнее здесь), которые содержат в себе какую-либо информацию описываемой сущности.

Однако при использовании «умного» поиска и указании хотя бы одного свободного измерения:

• на этапе индексации вместе с основным строится дополнительный индекс, состоящий из элементов свободных измерений;

• на этапе поиска каждое слово из пользовательского запроса проверяется на принадлежность к свободному измерению:

- если слово из свободного измерения, то оно будет искаться только в поле freeDimensions.

- если слово не из свободного измерения, то оно будет искаться только в поле name.

• результирующий запрос к Solr в упрощенном виде выглядит так:

name: (ВВП) AND freeDimensions: (Россия)

Итак, что же нам дает такое формирование запроса?

Во-первых, это обеспечивает более «чистую» релевантность. Действительно, зачем искать «Россию-матушку» в наименованиях, если заранее известно, что ее там нет и не будет.

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

Все еще формируете файл с синонимами без окончаний вручную?

Тогда мы идем к вам!

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

В каждом языке имеются тысячи и тысячи синонимов. Неужели мы обречем вас на то, чтобы формировать каждое слово-синоним без окончания по правилам Solr еще и в зависимости от используемого языка? Конечно, нет, потому что «Форсайт. Аналитическая платформа» обеспечивает автоматизированное заполнение файла синонимов без окончаний.

Подведем итоги

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

Для осуществления процесса индексации используются такие удобности, как контейнер задач, частичное обновление индекса и настройка параметров индексации через интерфейс.

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

Возможности BI-поиска в продукте «Форсайт. Аналитическая платформа» – широки. Поиск осуществляется по всем измерениям источника, будь то измерение показателей, стран или календарное.

Таким образом, обеспечивается возможность уточнения результатов поиска при больших объемах индекса. Результат поиска содержит всю необходимую информацию, а найденные слова при поиске подсвечиваются. Индексация и поиск могут осуществляться на различных языках (русский, английский, французский и т.д.).

Читайте также

Комментарии

Подробнее о политике использования персональных данных