DataparkSearch Engine 4.53: Справочное руководство
Пред. | Глава 8. Поиск документов | След.

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

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

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

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

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

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

Таблица 8-3. Параметры расчёта релевантности, задаваемые при компиляции (ключи для configure)

`--enable-fullrel` | Включает полный вариант расчёта релевантности. Значение по умолчанию: выключено (или быстрый расчёт релевантности).
`--disable-reldistance` | Выключает учёт среднего растояния между словами при расчёте релевантности. Значение по умолчанию: включено.
`--disable-relposition` | Выключает учёт позиции первого слова из запроса в тексте документа при расчёте релевантности. Значение по умолчанию: включено.
`--disable-relwrdcount` | Выключает учёт чисел вхождения слов из запроса в найденом документе при расчёте релевантности. Значение по умолчанию: включено.
`--with-bestpos=`NUM`` | Задаёт `NUM` в качестве лучшего значения первой позиции слова запроса в найденом документе. Значение по умолчанию: 4.
`--with-bestwrdcnt=`NUM`` | Задаёт `NUM` в качестве лучшего числа каждого из слов запроса в найденом документе. Значение по умолчанию: 11.
`--with-distfactor=`NUM`` | Задаёт `NUM` в качестве коэффициента для среднего растояния между словами запроса в найденом документе. Значение по умолчанию: 0.2.
`--with-posfactor=`NUM`` | Задаёт `NUM` в качестве коэффициента для расстояния между первой позицией слова запроса в найденом документе и значением, указаным параметром `--with-bestpos`. Значение по умолчанию: 0.5.
`--with-wrdcntfactor=`NUM`` | Задаёт `NUM` в качестве коэффициента для расстояния между числом слова запроса в найденом документе и значением, указаным параметром `--with-bestwrdcnt`. Значение по умолчанию: 0.4.
`--with-wrdunifactor=`NUM`` | Задаёт `NUM` в качестве коэффициента для величины отклонения количеств вхождения слов запроса в найденый документ от равномерного распределения. Значение по умолчанию: 1.5.

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

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

    PopRankMethod Neo

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

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

Вы можете присвоить начальное значение рейтинга популярности страницы используя МЕТА таг DP.PopRank (см. Разд. 4.3>).

### 8.5.3.1. Метод расчёта популярности 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).

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

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

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

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

    PopRankPostpone yes

Затем вы можете расчитать рейтинг популярности методом "Neo" также как и для метода "Goo", т.е.: indexer -TR

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

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

## 8.5.5. Crosswords

Эта возможность позволяет связать слова между <a href="xxx"> и </a> с документов, на который указывает данная ссылка. Для включения этой возможности, используйте команду CrossWords yes в `indexer.conf` и `search.htm`, а также определите секцию `crosswords` в файле `sections.conf`.

## 8.5.6. Алгоритм Построения Рефератов (SEA)

`Алгоритм Построения Рефератов (SEA)` позволяет построить реферат из трёх наиболее релевантных предложений для каждого проиндексированого документа, состоящего из более 6 предложений. Чтобы включить эту возможность, добавьте эту команду в ваш файл `seaction.conf`:

    Section sea x y

где `x` - номер секции и `y` - максимальный размер значения секции, задайте его равным 0, если вы не хотите показывать эту секцию на тсраницах результатов поиска. Если вы указываете ненулевое значение для `y`, вы можете использовать мета-переменную `$(sea)` в вашем шаблоне поиска для отображения реферата в результатах поиска.

Соответствующие команды конфигурирования:

Команда SEASentenceMinLength задаёт минимальную длину предложения, которое будет использовано для создания реферата. Значение по умолчанию: 32.

Команда SEASentences используется для задания максимального числа предложений, используемых при построении реферата. Значение по умолчанию: 64. В виду нелинейной сложности алгоритма SEA, вы можете установить значение этого параметра исходя из желаемой производительности индексирования.

При помощи команды SEASections вы можете указать список секций документов, по которым будут строиться рефераты. По умолчанию, для построения рефератов используется только секция "body".

    SEASections "body, title"

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