Помимо основ работы с маркерами поиска и свойствами поиска, позволяющими получать более точные результаты поиска в хранилище (см. раздел Поиск в хранилище) администраторы также могут использовать для управления "диапазоном" результатов поиска в хранилище изменяемый коэффициент гибкости поиска Lucene в файле web.config.
Коэффициент гибкости поиска определяет максимальное допустимое количество позиций между любыми двумя терминами в поисковой фразе для достижения совпадения. Эти позиции находятся в диапазоне от точного соответствия строке поиска до некоторого количества комбинаций этой строки.
"Гибкость" в данном случае — это редакционное расстояние, где единицы расстояния — это число перемещений, которые могут совершать маркеры относительно своей позиции в поисковой фразе и при этом входить в результаты поиска. Например, для изменения порядка двух слов в поисковой фразе требуется два перемещения. При первом перемещении слова помещаются друг над другом, при втором меняется их порядок. Таким образом, для переупорядочивания поисковой строки с двумя словами или маркерами гибкость должна равняться хотя бы двум (2).
Проще говоря, коэффициент гибкости определяет, насколько неупорядоченными могут быть маркеры поиска, чтобы все еще быть включенными в его результаты. И хотя по умолчанию более точные соответствия имеют приоритет, это значение может напрямую повлиять на общее количество результатов поиска.
В файле web.config (C:\Program Files\Autodesk\ADMS Professional 20xx\Server\Web\Services) найдите следующие две строки:
!-- slop factor provided to lucene search --> <add key="SearchSlopFactor" value="10" />
По умолчанию для гибкости задано значение 10. Можно сделать это значением равным 0 для поиска только точных соответствий или увеличить этот диапазон до требуемого уровня.
Пример 1: поиск с несколькими маркерами
Если ввести A-055* в качестве критерия поиска, а коэффициент гибкости при этом равен 10, будут получены дополнительные результаты в соответствии с настройками коэффициента гибкости, аналогичными следующим:
Если ввести A-055* в качестве критерия поиска с коэффициентом гибкости = 6, будут получены те же результаты, так как маркеры по-прежнему находятся в пределах редакционного расстояния, заданного коэффициентом гибкости.
Однако если ввести A-055* в качестве критерия поиска с коэффициентом гибкости = 4, количество результатов уменьшается до 5. В результаты поиска больше не включается B-055401-321.ipt, так как маркеры в B-055401-321-A.ipt стоят недостаточно близко друг к другу и не соответствуют ограничению гибкости или редакционному расстоянию. Для соответствия запросу A-055* нам потребуется перенести А на пять (5) позиций, считая от первого дефиса.
Если ввестиA-055* в качестве критерия поиска с коэффициентом гибкости = 2, мы получим только 4 результата.
B-321-055401-А.ipt не входит в результаты, так как для соответствия поисковой фразе А-055* нужно перенести А на три (3) позиции.
Наконец, если ввести A-055* в качестве критерия поиска с коэффициентом гибкости = 0, мы получим только точные соответствия.
Пример 2: поиск с меньшим количеством маркеров
Повторим поиск с меньшим количеством маркеров. На этот раз выполним поиск по фразе A055*.
Если ввести A055* в качестве критерия поиска с коэффициентом гибкости = 5, результатов будет 6, поскольку мы сократили количество позиций, на которое нужно переместить маркеры для достижения соответствия. Такой высокий коэффициент гибкости не требуется для получения 6 результатов:
Если ввести A055* в качестве критерия поиска с коэффициентом гибкости = 3, будет получено 5 результатов. Обратите внимание, что редакционное расстояние здесь меньше, чем в предыдущем примере, но результаты поиска совпадают (B-055401-321-A.ipt в них не входит):
Если ввести A055* в качестве критерия поиска с коэффициентом гибкости = 1, мы получим только 2 результата.
Однако если убрать "-", то поиск по именам файлов, содержащим A055*, с коэффициентом гибкости = 0 дает результат НЕТ — т. е. в данном случае точных соответствий нет.