Оглавление
1 Общее описание мультипоиска
Мультипоиск - это расширенный режим поиска,
предназначенный для построения сложных поисковых запросов
с использованием нескольких объектов, их свойств
и логических связей между ними.
В отличие от обычного поиска, где все условия объединяются в один плоский список, мультипоиск позволяет визуально задать структуру запроса в виде иерархического дерева на холсте.
Мультипоиск используется, когда требуется:
- искать объекты, связанные друг с другом по иерархии;
- последовательно уточнять результаты поиска;
- комбинировать условия по объектам и их свойствам;
- сохранять и повторно использовать сложные поисковые выражения.
Результат работы мультипоиска зависит не только от заданных условий, но и от расположения элементов на холсте, а также от контекста, из которого был запущен поиск.
В отличие от обычного поиска, где все условия объединяются в один плоский список, мультипоиск позволяет визуально задать структуру запроса в виде иерархического дерева на холсте.
Мультипоиск используется, когда требуется:
- искать объекты, связанные друг с другом по иерархии;
- последовательно уточнять результаты поиска;
- комбинировать условия по объектам и их свойствам;
- сохранять и повторно использовать сложные поисковые выражения.
Результат работы мультипоиска зависит не только от заданных условий, но и от расположения элементов на холсте, а также от контекста, из которого был запущен поиск.
2 Окно мультипоиска
Окно Мультипоиск предназначено для построения
и выполнения сложных поисковых запросов по объектам проекта
с использованием визуального холста.
В отличие от обычного поиска, мультипоиск позволяет задавать структуру запроса в виде иерархии объектов, их свойств и логических связей между ними.
Окно мультипоиска состоит из следующих основных вкладок:

В верхней части окна располагаются элементы выбора контекста поиска: проекта и области, в которой выполняется поиск.
Имя проекта определяет проект, по объектам которого будет выполняться мультипоиск.
При смене проекта:
- текущие настройки сохраняются;
- контекст поиска сбрасывается;
- список сохранённых настроек обновляется.
Поиск может выполняться в одном из двух режимов:
Весь проект - поиск выполняется по всем объектам выбранного проекта.
Выбранный блок - поиск выполняется только в пределах выбранного блока и всех его дочерних объектов.
Данный режим доступен, если мультипоиск был вызван из контекста конкретного блока проекта.
В отличие от обычного поиска, мультипоиск позволяет задавать структуру запроса в виде иерархии объектов, их свойств и логических связей между ними.
Окно мультипоиска состоит из следующих основных вкладок:
- «Холст» - визуальное построение поискового выражения;
- «Настройки» - управление сохранёнными наборами мультипоиска;
- «Результат» - просмотр найденных объектов.

В верхней части окна располагаются элементы выбора контекста поиска: проекта и области, в которой выполняется поиск.
Имя проекта определяет проект, по объектам которого будет выполняться мультипоиск.
При смене проекта:
- текущие настройки сохраняются;
- контекст поиска сбрасывается;
- список сохранённых настроек обновляется.
Поиск может выполняться в одном из двух режимов:
Весь проект - поиск выполняется по всем объектам выбранного проекта.
Выбранный блок - поиск выполняется только в пределах выбранного блока и всех его дочерних объектов.
Данный режим доступен, если мультипоиск был вызван из контекста конкретного блока проекта.
3 Вкладка «Холст»

Вкладка «Холст» предназначена для визуального формирования поискового выражения мультипоиска.
На данной вкладке пользователь задаёт структуру поиска путём добавления объектов, условий по их свойствам и логических связей между элементами.
Все элементы, размещённые на холсте, образуют иерархическое дерево, которое однозначно определяет порядок и логику выполнения поиска.
Вкладка «Холст» включает:
- область визуального построения поискового выражения;
- элементы управления добавлением объектов;
- средства редактирования структуры (выделение, перемещение, группировка);
- кнопку запуска поиска по текущему выражению.
Результат мультипоиска полностью определяется структурой и содержимым холста.
3.1 Холст мультипоиска
Холст мультипоиска представляет собой дерево элементов, описывающее поисковый запрос.Узлы холста соответствуют элементам логического выражения: объектам поиска, условиям по свойствам, логическим операторам и группам.
Выделение и редактирование
На холсте может быть выделен один или несколько элементов. Выделение используется для изменения структуры выражения: удаления, перемещения и группировки элементов.
Поддерживаются следующие операции:
- выделение одного элемента щелчком мыши;
- множественное выделение с использованием клавиш-модификаторов;
- снятие выделения со всех элементов.
Клавиатурное управление
Для работы с холстом предусмотрены следующие клавиши:
- → - объединить выделенные элементы в группу (при наличии корректного множественного выделения);
- ← - удалить выбранную группу и восстановить исходную структуру элементов;
- Delete - удалить все выделенные элементы;
- Ctrl + A - выделить все элементы холста, за исключением логических операторов;
- Esc - снять выделение со всех элементов;
- Ctrl + щелчок мыши - добавить элемент к текущему выделению или исключить его из него;
- Shift + щелчок мыши - выделить диапазон элементов в пределах одного уровня и одного родителя;
3.2 Элементы на холсте
Холст мультипоиска состоит из набора элементов, формирующих логическое выражение поиска в виде иерархического дерева.Каждый элемент относится к определённому типу и выполняет строго заданную роль в вычислении поискового результата.
На холсте используются следующие типы элементов:
- объекты;
- свойства;
- группы;
- логические операторы.
Объекты
Объект - основной элемент поискового выражения, соответствующий определённому типу объектов проекта, по которому выполняется поиск.
Объект определяет:
- тип искомых объектов;
- набор доступных свойств для задания условий;
- контекст поиска для вложенных элементов.
Создание объектов
Добавление объекта на холст выполняется с использованием элементов управления добавлением объектов.
Если в момент добавления ни один элемент не выделен, объект создаётся на верхнем уровне холста и становится корневым объектом поискового выражения.
Если перед добавлением объекта выделен другой объект или группа объектов, новый объект создаётся внутри выделенного элемента и становится вложенным объектом.
Таким образом, выделение определяет уровень вложенности, на котором будет создан новый объект.
Структура объекта
Объект может содержать:
- условия по своим свойствам;
- группы свойств;
- вложенные объекты;
- группы объектов;
- логические операторы между элементами одного уровня.
Все элементы внутри объекта подчиняются правилам допустимой структуры:
- свойства не могут иметь дочерних элементов;
- логические операторы существуют только между совместимыми соседними элементами;
- вложенные объекты формируют отдельный уровень контекста.
Листовые и контекстные объекты
Если объект не содержит вложенных объектов, он считается листовым и участвует в формировании итогового результата поиска.
Объекты, содержащие вложенные объекты, используются только для формирования контекста поиска и в итоговый результат не включаются.
Таким образом, верхнеуровневые и вложенные объекты задают область и направление поиска, а фактическими результатами всегда являются только листовые объекты.
Свойства
Свойство представляет собой одно условие, применяемое к объекту.
Свойство включает:
- выбранное свойство объекта;
- операцию сравнения;
- значение (при необходимости).
Свойства:
- всегда принадлежат конкретному объекту;
- не могут иметь дочерних элементов;
- участвуют в логических выражениях только на уровне своего объекта.
Группы
Группа является логическим элементом, эквивалентным скобкам в булевом выражении.
Группа не является самостоятельным условием поиска и не добавляет новых критериев. Она используется для явного задания порядка вычисления логических операций.
Группы применяются для:
- изменения приоритета операций;
- структурирования выражения;
- устранения неоднозначности при использовании операторов И и ИЛИ.
Существуют две независимые логические зоны:
- группы объектов;
- группы свойств.
Группировка допускается только между элементами:
- одного типа;
- одного уровня вложенности;
- одной логической зоны.
Объединение объектов и свойств в одной группе не допускается.
Логические операторы
Логический оператор определяет способ объединения двух соседних элементов одного уровня.
Используются операторы:
- И - выполняются оба условия;
- ИЛИ - выполняется хотя бы одно условие.
Логические операторы:
- создаются автоматически между совместимыми элементами;
- применяются только внутри одной логической зоны;
- могут быть изменены пользователем, если это допускается логикой выражения.
Общая логика
Элементы холста образуют структурированное дерево, в котором объекты задают контекст поиска, свойства формируют условия, группы управляют приоритетом вычислений, а логические операторы определяют способ объединения результатов.
3.3 Порядок выполнения поиска
Выполнение мультипоиска осуществляется путём последовательной интерпретации поискового выражения, сформированного на холсте, и основано на операциях над множествами объектов.Поиск не является линейной проверкой условий. Каждый элемент выражения формирует, преобразует или комбинирует множества найденных объектов.
Контекст поиска
На каждом этапе выполнения поиска алгоритм оперирует контекстом - множеством объектов, полученных на предыдущем шаге.
Контекст определяет область, в пределах которой выполняется следующая операция поиска.
Если мультипоиск запускается без явного начального контекста, в качестве стартового контекста используется корень проекта.
Контекстные и результирующие объекты
Все объекты на холсте логически делятся на:
- контекстные (узловые) объекты;
- результирующие (листовые) объекты.
Контекстные объекты используются исключительно для ограничения области поиска и никогда не попадают в итоговый результат.
В итоговый результат мультипоиска всегда включаются только листовые объекты, то есть объекты, не содержащие вложенных объектов.
Таким образом, объекты верхних уровней формируют контекст выполнения, а конечные объекты определяют результат поиска.
Цепочки объектов
Если объект содержит вложенные объекты, поиск выполняется в виде цепочки.
Алгоритм цепочки:
- из текущего контекста выбираются объекты типа, заданного текущим узлом;
- к найденным объектам применяется фильтрация по свойствам (если задана);
- полученное множество становится контекстом для следующего объекта цепочки.
Каждый следующий объект цепочки обрабатывается только внутри множества, полученного на предыдущем шаге.
Фильтрация по свойствам
Условия по свойствам объекта применяются до перехода к вложенным объектам.
Фильтрация по свойствам преобразует текущее множество контекста, оставляя только объекты, удовлетворяющие заданным условиям.
Результатом фильтрации является новое множество, которое используется на последующих этапах поиска.
Логические операторы и множества
Логические операторы И и ИЛИ применяются к результатам поиска в виде операций над множествами:
- оператор И соответствует пересечению множеств;
- оператор ИЛИ соответствует объединению множеств.
Логические операции выполняются только между множествами, полученными на одном логическом уровне и относящимися к совместимым элементам.
Ограничения логических операций
Логический оператор может быть недоступен для изменения, если объединяемые элементы относятся к различным контекстам или формируют несовместимые множества.
В частности, логические операторы блокируются, если попытка объединения приводит к неоднозначной или логически некорректной интерпретации результата поиска.
Данные ограничения являются преднамеренными и предотвращают создание некорректных поисковых выражений.
Результат выполнения мультипоиска
Результатом выполнения мультипоиска является множество листовых объектов, удовлетворяющих всем условиям поискового выражения и найденных в рамках заданного контекста.
Все промежуточные объекты используются исключительно для навигации и ограничения области поиска и в результатах не отображаются.
4 Вкладка «Настройки»

Вкладка «Настройки» предназначена для управления сохранёнными конфигурациями мультипоиска.
Настройка представляет собой сохранённое состояние холста, включающее полную структуру поискового выражения.
Настройки позволяют:
- сохранять сложные поисковые запросы;
- повторно использовать их без повторной сборки;
- копировать и модифицировать существующие конфигурации;
- запускать поиск напрямую по сохранённой настройке.
4.1 Настройки и контекст запуска
Каждая настройка привязана к контексту хранения, который определяется моментом её создания.В качестве контекста используется:
- либо выбранный элемент проекта (например, блок);
- либо корень проекта, если поиск был открыт без выделения.
Контекст влияет только на область применения поиска, но не изменяет структуру сохранённого выражения.
Список настроек
В центральной части вкладки отображается таблица сохранённых настроек текущего контекста.
Каждая строка таблицы соответствует одному сохранённому набору параметров и содержит его имя.
Создание настройки
При создании новой настройки:
- запрашивается имя настройки;
- создаётся пустое поисковое выражение;
- настройка сохраняется в текущем контексте проекта.
Имя настройки должно быть уникальным в пределах одного контекста.
Сохранение настройки
Операция сохранения перезаписывает выбранную настройку текущим состоянием холста.
При этом:
- структура выражения экспортируется;
- предыдущая версия настройки полностью заменяется;
- имя настройки остаётся неизменным.
Открытие настройки
При открытии настройки:
- сохранённое описание загружается на холст;
- текущая структура холста полностью заменяется;
- пользователь автоматически переключается на вкладку «Холст».
Переименование
Настройка может быть переименована без изменения её содержимого.
Новое имя:
- не должно быть пустым;
- не должно совпадать с именами других настроек в том же контексте.
Удаление
Удаление настройки полностью исключает её из текущего контекста проекта.
Операция удаления является необратимой и требует подтверждения пользователя.
Копирование и вставка
Настройка может быть скопирована во внутренний буфер приложения.
При вставке:
- создаётся новая настройка;
- её содержимое полностью совпадает с исходной;
- имя автоматически модифицируется для обеспечения уникальности.
Запуск поиска по настройке
Поиск может быть запущен напрямую по выбранной настройке без её загрузки на холст.
В этом случае:
- используется сохранённое поисковое выражение;
- применяется текущий контекст проекта;
- результаты отображаются на вкладке «Результат».
5 Вкладка «Результат»

5.1 Результаты мультипоиска
Вкладка «Результат» предназначена для отображения объектов, найденных в результате выполнения поискового выражения, сформированного на вкладке «Холст».Результаты поиска представляются в виде таблицы, каждая строка которой соответствует одному найденному объекту проекта.
Состав результатов
В таблицу результатов включаются только листовые объекты - объекты, не содержащие вложенных объектов в поисковом выражении.
Все объекты верхних уровней, использованные при построении выражения, выполняют роль контекста поиска и в результаты не включаются.
Навигация по результатам
Каждый элемент в таблице результатов связан с соответствующим объектом проекта.
Выбор строки в таблице позволяет:
- перейти к объекту в дереве проекта;
- использовать найденный объект для дальнейших действий пользователя.
Поведение при отсутствии результатов
Если по заданному поисковому выражению не найдено ни одного объекта, таблица результатов не отображается, а пользователю выводится соответствующее уведомление.
Таким образом, вкладка «Результат» является финальным этапом работы мультипоиска и отображает только те объекты, которые полностью удовлетворяют условиям поиска и не служат промежуточным контекстом.