Настройка результатов поиска с помощью коэффициента гибкости поиска

Помимо основ работы с маркерами поиска и свойствами поиска, позволяющими получать более точные результаты поиска в хранилище (см. раздел «Поиск в хранилище»), администраторы также могут использовать для управления «диапазоном» результатов поиска в хранилище изменяемый коэффициент гибкости поиска Lucene в файле web.config.

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

"Гибкость" в данном случае — это редакционное расстояние, где единицы расстояния — это число перемещений, которые могут совершать маркеры относительно своей позиции в поисковой фразе и при этом входить в результаты поиска. Например, для изменения порядка двух слов в поисковой фразе требуется два перемещения. При первом перемещении слова помещаются друг над другом, при втором меняется их порядок. Таким образом, для переупорядочивания поисковой строки с двумя словами или маркерами гибкость должна равняться хотя бы двум (2).

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

Настройка коэффициента гибкости

  1. В файле Web.config (C:\Program Files\Autodesk\Vault Server 20xx) найдите следующие две строки:

    !-- slop factor provided to lucene search -->
    
    <add key="SearchSlopFactor" value="10" />
  2. Измените значение SearchSlopFactor на сервере ADMS для изменения результатов, получаемых при определенных критериях поиска. В зависимости от внесенных изменений будет получен уточненный или расширенный набор результатов поиска.

    По умолчанию для гибкости задано значение 10. Можно сделать это значением, равным 0, для поиска только точных соответствий или увеличить этот диапазон до требуемого уровня.

    Примечание. Следует помнить, как эти изменения влияют на работу пользователей с поиском. Если значение слишком низкое, пользователи могут не найти нужных им данных. Если значение слишком велико, им придется сортировать слишком много результатов поиска.

Пример 1: поиск с несколькими маркерами

Допустим, нужно найти файл А-055401-321.ipt. В данном поисковом запросе содержится шесть (6) маркеров поиска:

Если ввести 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 результата.

Примечание. Для получения результатов поиска с неупорядоченными маркерами необходимо задать для этого коэффициента значение не меньше 2.

B-321-055401-A.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 дает ноль результатов, т. е. в данном случае точных соответствий нет.