Поиск — Администрирование¶
Обзор¶
Администрирование поиска в 1Форме охватывает настройку режимов поиска пользователей в контролах выбора, текстовых режимов поиска задач (FTS, триграммный, точный, префикс/суффикс), а также глобальные параметры через CustomSettings.
Поиск пользователей¶
Режимы поиска в контроле «Кому»¶
Где настраивается: Общие настройки приложения (system-settings) → параметр «Быстрый поиск и поиск в контроле Кому».
Что контролируется: какие поля пользователя участвуют в поиске при выборе получателя в контроле «Кому» (карточка задачи, назначение исполнителей, подписчиков, расширенный поиск пользователей и др.).
| Режим | Описание |
|---|---|
| По имени | Поиск по имени пользователя |
| По фамилии | Поиск по фамилии |
| По имени или фамилии | Совпадение по имени или фамилии |
| По имени и фамилии | Совпадение одновременно по имени и фамилии |
| По фамилии и имени | Совпадение одновременно по фамилии и имени |
⚠️ Жёсткое ограничение: независимо от настройки, поиск запускается при вводе не менее трёх символов. Поиск по одному или двум символам невозможен — это обеспечивает стабильность при больших объёмах данных.
Поиск по основной должности работает автоматически (дополнительная настройка не требуется).
Умный поиск (fuzzy): при донаборе символов опечатка не очищает выборку — удобно искать контакты даже с опечатками.
См. также: спецправа на видимость пользователей в результатах поиска — users-and-groups/admin.md.
Минимальная длина строки для подсказок¶
Где настраивается: Общие настройки приложения → параметр «Количество обязательных символов для поиска» (Settings.NumberCharsForSearchContacts).
Задаёт минимальное число символов, начиная с которого система предлагает подсказки в выпадающем списке подходящих пользователей. Жёсткий лимит: не менее 3 символов.
CustomSettings: ограничение полей поиска¶
| Ключ | Тип / Default | Назначение |
|---|---|---|
OnlyNameUsersSearch |
bool / false |
Если true — поиск сотрудников учитывает только DisplayName и FullName. Если false — также учитываются телефон, email и другие параметры профиля (медленнее, но шире). Используется для ускорения поиска на больших инсталляциях |
Текстовый поиск задач, комментариев и ДП¶
Тип поиска по тексту задачи (TaskTextSearchType)¶
Где настраивается: - Глобально: Общие настройки приложения → блок «Настройки поиска» - На уровне категории: настройки категории → «Прочие» → «Тип поиска»
Порядок применения: настройка категории переопределяет глобальную (приоритет возрастает: общие → категория).
| Режим | TaskTextSearchType | Описание | Пример |
|---|---|---|---|
| Поиск по вхождению подстроки | 16 (LIKE) | Находит задачи, где в тексте встречается указанная фраза, даже если вокруг неё есть другие слова | «договор» → «Подписать договор», «Договор №123» |
| Полнотекстовый | 2 (FTS) | Ищет с учётом различных форм слов (окончаний, склонений). Медленнее из-за лингвистического анализа | «оплатить счет» → «оплаченные счета» |
| Полное совпадение | 3 | Только полное совпадение текста задачи | «Акт» → только «Акт», не «Акт сверки» |
| Обрамлять справа | 4 | Поиск по началу текста | «Отчет» → «Отчет за май», не «Сдать отчет» |
| Обрамлять слева | 5 | Поиск по концу текста | «2024» → «Договор №123/2024», не «2024 год» |
См. также: подробное описание режимов и их влияние на runtime — database.md (SP
ShowTasksFeed,TaskTextSearchType), business.md (ранжирование и сортировка).
Триграммный поиск¶
Где настраивается:
- Глобально: CustomSettings UseTrigramInSimpleSearch
- На уровне категории: настройки категории → «Прочие» → «Использовать триграмм» (Subcategories.UseTrigramSearchF, default = 1)
Что делает: метод поиска на основе разбиения строк на последовательности из трёх символов (триграммы). Позволяет находить совпадения при опечатках, морфологических вариациях или частичном совпадении строк. Если настройка активна, система автоматически генерирует триграммы для текста задачи категории при её создании или изменении. Если отключена — триграммы не рассчитываются, и поиск по неточным совпадениям невозможен.
⚠️ Ограничения: - Триграммный поиск осуществляется при вводе не менее трёх символов. Поиск по одному или двум символам невозможен. - Триграммный поиск учитывает специальные символы.
При включении/выключении в категории вызывается хранимая процедура OnChangeSubcatUseTrigramSearchF (только MS SQL).
См. также: технические детали триграммного индекса, таблица
TasksTrigrams, SP — database.md.
CustomSettings для триграммного поиска¶
| Ключ | Тип | Описание | Значение по умолчанию |
|---|---|---|---|
UseTrigramInSimpleSearch |
int | Включение нечёткого поиска по тексту с учётом опечаток в окне быстрого поиска в панели инструментов. Если 0 или не задан — работает полнотекстовый поиск | 1 (включено) |
FilterChain.MaxTrigramCountForTrigramSearch |
int | Максимальное количество триграмм (для категорий, в которых поиск не использует индексированные тексты задач), при превышении которого поиск выполняется непосредственно по денормализованным данным, без применения триграмм | 100000 |
FilterChain.MinSubcatSizeForTrigramSearch |
int | Минимальный размер категории, при превышении которого поиск выполняется по денормализованным данным, без использования триграмм и индексированных задач, на которые ссылаются ДП Lookup и Multilookup | 100000 |
Поиск по локализованным значениям¶
Где настраивается: CustomSettings EnabledLocalizedSearch = 1
Что делает: поиск в задачах, комментариях и ДП учитывает локализованные значения. Если у пользователя установлен английский интерфейс, система автоматически находит записи, у которых есть перевод на английский язык.
⚠️ Ограничение: при поиске по тексту задачи или ДП учитывается только тот язык, который выбран в интерфейсе пользователя. Значения в других локалях в поиске не участвуют.
См. также: business.md — ранжирование и сортировка результатов поиска.
AI Search документации — исключение секций из PageRank¶
Хранимая процедура dbo.sp_BuildPageRank пересчитывает ранжирование документации на основе графа ссылок (dbo.DocsLinks → dbo.DocsPageRank). По умолчанию из расчёта исключаются служебные секции, страницы которых не должны влиять на ранжирование основной документации.
Список исключаемых секций задаётся в dbo.SettingsCustom:
| Ключ | Формат значения | Значение по умолчанию | Описание |
|---|---|---|---|
anfisa_search_section_exclude |
JSON-массив имён секций (имя секции — первый сегмент пути после docs/) |
["scenarios","clients"] |
Страницы, путь которых начинается с docs/<section>/, исключаются из графа PageRank |
Пример значения:
["scenarios","clients","experiments"]
При таком значении страницы, путь которых начинается с docs/scenarios/, docs/clients/ или docs/experiments/, не попадают в граф PageRank: они отсутствуют в наборе вершин, не получают строки в dbo.DocsPageRank и не влияют на PageRank / HITS соседних документов.
Если ключ отсутствует, его значение пусто или равно [], процедура автоматически подставляет ["scenarios","clients"]. Чтобы отключить исключение полностью, задайте значение, не покрывающее ни одной реальной секции (например, ["__none__"]).
Настройка применяется при следующем запуске dbo.sp_BuildPageRank — на ближайшем push в репозиторий документации (Indexer SS 509) или на следующем плановом перестроении.
Реализация: парная миграция MSSQL + PG, v2.268, MR !1528, задача #2087134. Файлы: TaskCenter/_nakat/DBMigrations/scripts/1Forma/v2.268/1778748605.2087134-alter-sp_BuildPageRank.sql (MSSQL, чтение фильтра в lines 32-37) и 1Forma_pg/v2.268/1778748605.2087134-alter-sp_BuildPageRank.pgsql (PG, lines 67-91).
Поиск по дополнительным параметрам¶
Участие ДП в поиске¶
Где настраивается: настройки ДП в категории → параметр «Участвует в поиске».
Особенность для ДП «Таблица»: параметр «Участвует в поиске» влияет не только на поиск «в полях», но и на фильтр «Содержит» в табличном представлении категории. Если этот параметр отключён у всех столбцов таблицы, фильтр «Содержит» на колонке ДП Таблица в гриде не найдёт ни одной задачи. Фильтры «Нет значения» и «Есть значение» этого ограничения не имеют.
См. также: настройка колонок ДП Таблица — ext-params/table/settings-reference.md.
Поиск в Lookup-полях¶
Поиск значений в ДП «Lookup-поле» учитывает параметр «Количество обязательных символов для поиска» из Общих настроек приложения. Минимум — 3 символа (жёсткий лимит системы).