DataparkSearch 4.26 Руководство: Поисковая машина
Пред. | Глава 8. Поиск документов | След.

# Релевантность

## Упорядочивание документов

При сортировке документов перед выдачей результата поиска DataparkSearch по умолчанию учитывает два параметра каждого документа: `релевантность` и `популярность`. Сначала документы сортируются по релевантности, а при равенстве, по популярности.

## Расчёт релевантности

Релевантность каждого документа вычисляется как косинус угла между вектором весов этого документа и вектором весов, соответствующему поисковому запросу, умноженный на 100%. Число координат векторов весов равно произведению числа слов в запросе (с учётом всех словоформ и синонимов) на число секций, определённых в `indexer.conf`. Каждая координата вектора весов соответсвует слову из запроса в той или иной секции документа. И значение для этой координаты вычисляется на основе весов секций, заданных параметром `wf` (см. Разд. Изменение весов различных частей документов во время поиска) и на основании того, является ли данное слово именно указанным в запросе или его словоформой. Также еще одна координата соответсвует среднему расстоянию между найденными словами в данном документе. Для вектора запроса эта координата полагается равной 0.

Т.к. в файлах конфигурации поисковых фронтэндов (`searchd.conf` или `search.htm`) не предусмотрено указание секцией, используйте команду NumSections для указания числа используемых секций (по умолчанию оно равно 256). Впрочем, точное число секций не играет решающей роли в порядке сортировки документов, только в значении рейтинга релевантности.

## Рейтинг популярности

DataparkSearch поддерживает два метода расчёта рейтинга популярности. Метод, использовавшийся в предыдущих версиях получил название `Goo`, а новый метод называется `Neo`. По умолчанию используется метод `Goo`. Чтобы выбрать нужный метод расчёта популярности используйте команду PopRankMethod:

    PopRankMethod Neo

Для метода расчёта популярности `Neo`,а также для полного варианта метода `Goo` вам необходимо включить сбор ссылок между страницами командой CollectLinks yes в вашем файле конфигурации `indexer.conf`. Однако, это незначительно уменьшает скорость индексирования, поэтому по умолчанию сбор этих ссылок выключен.

Если в `indexer.conf` указана опция `PopRankSkipSameSite yes`, то при расчёте рейтинга популярности учитываются ссылки только между различными сайтами.

### Метод расчёта популярности "Goo"

Рейтинг популярности рассчитывается в два этапа. На первом этапе значение параметра `Weight` для каждого сервера делится на число ссылок со страниц этого сервера. Таким образом определяется вес одной ссылки с этого сервера. На втором этапе для каждой страницы находится ссума весов всех ссылок, указывающих на эту страницу. Эта сумма и является индексом популярности страницы.

По умолчанию значение параметра `Weight` для каждого сервера равно 1. Изменить это значение вы можете непосредственно в SQL-таблице `server` или при помощи команды Weight в файле конфигурации `indexer.conf`.

Если в `indexer.conf` указана опция `PopRankFeedBack yes`, то перед расчётом рейтинга популярности страниц рассчитывается рейтинг сайтов. Для этого для каждого сайта находится сумма популярности всех его страниц, если она окажется меньше 1, то рейтинг сайта полагается равным 1, в противном случае он полагается равным найденной сумме.

Если в `indexer.conf` указана опция `PopRankUseTracking yes`, то перед расчётом рейтинга популярности страниц в качестве рейтинга сайтов будет использована сумма числа запросов уточнения поиска для каждого сайта (т.е. число запросов поиска только среди документов с этого сайта).

Если в `search.htm` (или `searchd.conf`) указана опция `PopRankUseShowCnt yes`, то для каждого выводимого пользователю результата поиска, имеющего значение релевантности выше, заданного командой `PopRankShowCntRatio` (по умолчанию используется значение 25.0), значение `url.shows` увеличивается на 1. Если в `indexer.conf` указана опция `PopRankUseShowCnt yes`, то при расчёте рейтинга популярности страниц, к полученному на предыдущих этапах значению рейтига каждой страницы будет прибавлено значение `url.shows`, умноженное на значение, заданное опцией `PopRankShowCntWeight` (по умолчанию используется значение 0.01).

### Метод расчёта популярности "Neo"

При этом методе расчёта популярности подразумевается, что страницы являются нейронами, а ссылки между страницами являются связями между нейронами. Такми образом для образованой нейросети можно использовать один методов её обучения - метод обратного распростаанения ошибки. Рейтингом популярности страницы в данном случае считается уровень активности соотвествующего нейрона.

Вы можете использовать команду `PopRankNeoIterations` для задания числа итераций при расчёте популярности методом "Neo". Значение по умолчанию: 3.

## Булевы запросы

При булевом поиске, состоящем из двух и более слов, необходимо вводить операторы (&, |, ~). Т.е. необходимо вводить "a & book" вместо "a book" (без кавычек).

## Crosswords

Эта возможность позволяет связать слова между <a href="xxx"> и </a> с документов, на который указывает данная ссылка. Эта возможность не поддерживается для встроенной (built-in) базы данных. Для включения этой возможности, используйте команду CrossWords yes в `indexer.conf` и `search.htm`.

Пред. | Начало | След.
Дизайн search.html | Уровень выше | Регистрация поисковых запросов