Заметки из Зазеркалья

07.02.2013

Новый поиск по строке

Реализовано в версии 8.3.3.641.

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

Мы проанализировали задачи поиска, возникающие у пользователей. Провели "ревизию" имеющихся в платформе механизмов, которые используют различные алгоритмы поиска. В результате ввод по строке приобрёл качественно новые возможности.

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

Все новые свойства, позволяющие настраивать ввод по строке, мы собрали на отдельной закладке окна редактирования объекта конфигурации:

Например, вы можете указать, что поиск будет выполняться в любом месте строки, а не только в её начале:

Тогда пользователь может набирать любые фрагменты слов, а не только те символы, с которых начинается искомая строка:

Использование полнотекстового поиска при вводе по строке включается отдельным свойством:

С помощью полнотекстового поиска пользователи могут среди больших объёмов данных быстро находить подходящие данные по любому из слов, содержащихся, например, в наименовании:

Также они могут искать и по нескольким известным словам. Незаконченные слова будут автоматически дополняться возможными сочетаниями:

Если объём данных велик, то в обоих случаях вы можете указать, что поиск должен выполняться с помощью фонового задания:

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

Общие рекомендации мы можем сформулировать так:

  • если в объекте, который используется в поле ввода, не ожидается большого количества данных, то мы советуем включить поиск строки в любом месте;
  • если в объекте планируется большое количество данных, то:

    • мы советуем включить полнотекстовый и фоновый поиск;

    • при этом вы также можете использовать поиск строки в любом месте, но совместно с фоновым поиском и желательно с полнотекстовым поиском; чтобы большая часть поисков выполнялась через полнотекстовый поиск.

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

На клиенте - в клиентских обработчиках событий поля ввода АвтоПодбор и ОкончаниеВводаТекста:

На сервере - в модуле менеджера того объекта, в данных которого выполняется поиск. В обработчике события ОбработкаПолученияДанныхВыбора:

Естественно, в этом месте, на сервере, нельзя переопределить способ выполнения поиска "Непосредственно" или "Фоновым заданием". Потому что исполнение кода уже передано на сервер.

Теги: юзабилити  8.3.3