DataparkSearch Engine 4.50: Справочное руководство
Пред. | Глава 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.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, вы можете установить значение этого параметра исходя из желаемой производительности индексирования.

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