Перейти к содержанию

Поиск — бизнес-логика

Обзор

Поиск в 1Форме — это единый механизм нахождения задач и связанных данных по тексту, параметрам и контексту пользователя.

Бизнес-цель: дать пользователю релевантный результат быстро и с корректным учётом прав доступа.

Что входит в домен

  1. Текстовый поиск задач.
  2. Поиск по ДП.
  3. Поиск по файловым аннотациям.
  4. Семантический (векторный) поиск через внешний сервис.

Бизнес-модель режимов поиска

Режим Назначение
FTS (TaskTextSearchType=2) основной полнотекстовый режим
Триграммный (1, 3, 4, 5, 16) substring/exact/prefix/suffix/like-поиск
По ДП (SearchExtParamTasks) фильтрация по значениям параметров
По файлам (SearchFileAbstract) поиск по содержимому вложений
Векторный (/api/search/vector) семантический ранг по внешнему AI-сервису

Бизнес-правила

  1. Тип поиска должен соответствовать пользовательскому сценарию, иначе результат «формально есть, но не тот».
  2. Категорийный флаг UseTrigramSearchF влияет на скорость и качество substring-кейсов.
  3. Поиск всегда ограничивается доступностью задач пользователю.
  4. Для больших выборок критичны фильтры и пагинация в ShowTasksFeed.

Ранжирование и сортировка результатов

Формула ранга

Во всех контурах поиска ранг вычисляется по единой формуле:

SearchRank = FullTextRank + TaskEpvCount × weightLookupQ + IsDictionary × weightIsDictionary
  • FullTextRank — ранг из FTS (CONTAINSTABLE, 0–1000)
  • TaskEpvCount — количество EP-значений (лукапов), ссылающихся на задачу — повышает ранг справочных данных
  • IsDictionary — флаг справочной подкатегории — существенный бонус для словарей

Текущие режимы сортировки

Контур Порядок сортировки Управляется пользователем?
Мини-поиск (саггесты) совпадение-по-номеру → совпадение-в-тексте → ранг → дата изменения DESC (новые выше) Нет
Общий поиск задач SearchRank DESC → CreatedTask DESC → TaskID DESC Нет
Поиск по файлам FTS-ранг DESC Нет
Грид категории Выбор пользователем (клик по заголовку), default: TaskID DESC Да

Планируемые варианты сортировки

Задачи и пространства: - «Рекомендация» — текущий ранкинг - «Новые» — по дате создания - «Недавно изменённые» — по дате изменения

Файлы: - «Рекомендация» — текущий FTS-ранкинг - «Недавно загруженные» — по дате загрузки - «Недавно изменённые» — по дате последней версии файла

Пользовательский интерфейс поиска

Быстрый поиск

Открывается по клику на поисковую строку в панели навигации (или Ctrl/Cmd + /).

Под строкой ввода — список 10 последних чатов, ниже — история просмотра задач (формируется при переходе в задачу, отправке сообщения, просмотре файла, переходе по маршруту и т.д.).

Особенности: - Поиск без учёта раскладки клавиатуры (русское слово можно набрать на английской раскладке) - Поиск пользователей — по имени, фамилии и основной должности - Нечёткий поиск с учётом опечаток — включается администратором в настройках

Результаты: сначала сотрудники, затем избранные ссылки, чаты, задачи, пространства, категории, файлы, отчёты.

Каждый блок отображается только если соответствующий раздел включён в настройках рабочего места группы (РМГ):

Блок Условие отображения
Пространства РМГ → «Прочее» → «Блок "Пространства"» = «Показывать»
Чаты Чаты включены в РМГ
Сотрудники Сотрудники включены в РМГ

Задачи, найденные по номеру, всегда попадают в блок «Задачи» при наличии прав — независимо от того, показан ли блок «Пространства».

Избранные объекты отмечены звёздочкой.

Быстрые действия при наведении:

Объект Действие
Сотрудник Открыть чат, начать видеоконференцию, перевоплощение (только для администраторов)
Файл Перейти в задачу, скачать файл

ПКМ по файлу — контекстное меню: просмотр, скачать, история версий, скопировать ссылку.

Нажатие Enter при найденном номере задачи — открывает задачу напрямую. Cmd/Ctrl + Enter — открывает расширенный поиск в новой вкладке. По кнопке лупы — переход к полной форме поиска.

Горячие клавиши быстрого поиска:

Действие Windows macOS
Открыть/закрыть поиск Ctrl + / Cmd + /
Прокрутка списка последних чатов Shift + Alt + колесо мыши Shift + Cmd + колесо мыши
Перемещение по результатам / /
Открыть объект Enter Enter
Вернуться из задачи Ctrl + E Cmd + E

Переключатели типов в полной форме поиска

Переключатель Что ищется Примечание
Задачи По номеру и тексту Номер вводится целиком; поиск в т.ч. завершённых (отключается опцией «Показывать завершённые»)
Категории По названию Скрыт, если категории отключены в РМГ
Чаты По названию личных и групповых чатов Скрыт, если чаты отключены в РМГ
Сотрудники По имени, фамилии, должности Скрыт, если сотрудники отключены в РМГ
Пространства По названию и содержимому статей Скрыт, если пространства отключены в РМГ
Сообщения По тексту сообщений в задачах Фильтры: Автор, Кому/Копия, Категории, Чаты
Публикации По тексту публикаций социальной сети Скрыт, если соцсеть отключена в РМГ
Файлы По названию и содержимому файлов, в т.ч. файлов на Диске Требует настройки Tika-сервиса
Отчёты По названию доступных отчётов Скрыт, если отчёты отключены в РМГ

Карточка задачи или чата открывается справа или снизу — в соответствии с настройкой интерфейса «Просмотр задачи».

AI (умный) поиск

Включается администратором через кастомную настройку showAI.

Помимо полнотекстового поиска, доступен векторный AI-поиск — анализирует контекст и синонимы, а не только совпадение слов.

Автоматический выбор объекта поиска по ключевым словам:

Запрос содержит Что ищется
«в комментариях», «писал», «обсуждал» Сообщения к задачам
«в файлах», «по вложениям», «содержимое файлов» Содержимое файлов
Имя файла с расширением (напр. «отчет.xlsx») Файлы по имени
Всё остальное Задачи

Контекстная строка под результатом показывает применённые фильтры: исполнителей, значения ДП, фрагменты комментариев.

Ранжирование AI-результатов учитывает пользовательский опыт: участие в задачах (заказчик, исполнитель, подписчик), оставленные комментарии и реакции.

Примеры запросов:

Запрос Найдёт
задачи Тимонова Задачи с исполнителем Тимонов
просроченные задачи Денисюка Просроченные задачи с исполнителем Денисюк
активные пресейлы клиент Ригла Задачи в категории «Пресейлы» с клиентом «Ригла»
в комментариях Матвеев про интеграцию Комментарии от Матвеева со словом «интеграция»
в файлах протокол совещания Файлы с текстом «протокол совещания»

Расширенный поиск задач

Включается администратором через кастомную настройку useNewExtendedSearch. Прямой адрес: /spa/search?mode=advanced.

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


Ключевые сценарии

1. Быстрый поиск в реестрах

Пользователь вводит строку и получает список задач с ранжированием и пагинацией.

2. Расширенный поиск

Пользователь задаёт фильтры по ДП и сочетает их с текстовым условием.

3. Поиск по вложениям

Пользователь ищет задачу по содержимому файла.

4. Семантический поиск

Система возвращает релевантные задачи по смысловому совпадению запроса.

Типовые инциденты

Симптом Возможная причина
Пустой результат при ожидаемых совпадениях неподходящий режим поиска/фильтры/права
Медленный поиск тяжёлый запрос в ShowTasksFeed, неподходящий путь поиска
Разные результаты на разных экранах разные параметры backend-запросов
Файлы не по свежести SearchFileAbstract сортирует только по FTS-рангу, без даты
~~Старые задачи выше в саггестах~~ Исправлено: SimpleSearchByTasks изменён на ModifiedDate DESC (новые выше)