SphinxClient::setRankingMode
(PECL sphinx >= 0.1.0)
SphinxClient::setRankingMode — Установка режима ранжирования
Описание
public bool SphinxClient::setRankingMode
( int
$ranker
)
Устанавливает режим ранжирования. Доступна только в режиме
совпадения SPH_MATCH_EXTENDED2
.
Константа | Описание |
---|---|
SPH_RANK_PROXIMITY_BM25 | Режим ранжирования по умолчанию, использующий как близостное, так и BM25 ранжирование. |
SPH_RANK_BM25 | Статистический режим ранжирования, использующий только метод BM25 (наиболее близкий к другим полнотекстовым движкам). Этот режим быстрее, но может давать худший результат на запросах, содержащих более одного ключевого слова. |
SPH_RANK_NONE | Отключает ранжирование. Этот режим самый быстрый. Фактически является эквивалентом логического поиска, и всем совпадениям присваивается вес 1. |
Список параметров
-
ranker
-
Режим ранжирования.
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с поисковыми системами
- Клиент Sphinx
- Функция SphinxClient::addQuery() - Добавление запроса к очереди запросов
- Функция SphinxClient::buildExcerpts() - Построение текстовых фрагментов
- Функция SphinxClient::buildKeywords() - Извлечение ключевых слов из запроса
- Функция SphinxClient::close() - Закрытие ранее открытого постоянного соединения
- Функция SphinxClient::__construct() - Создание нового объекта SphinxClient
- Функция SphinxClient::escapeString() - Экранирование спецсимволов
- Функция SphinxClient::getLastError() - Получение последнего сообщения об ошибке
- Функция SphinxClient::getLastWarning() - Получение последнего предупреждения
- Функция SphinxClient::open() - Создание постоянного подключения к серверу
- Функция SphinxClient::query() - Выполнение поискового запроса
- Функция SphinxClient::resetFilters() - Обнуление всех фильтров
- Функция SphinxClient::resetGroupBy() - Сброс всех настроек группировок
- Функция SphinxClient::runQueries() - Выполнение набора поисковых запросов
- Функция SphinxClient::setArrayResult() - Изменение формата массива с набором результатов запроса
- Функция SphinxClient::setConnectTimeout() - Установка таймаута соединения
- Функция SphinxClient::setFieldWeights() - Установка весовых коэффициентов полей
- Функция SphinxClient::setFilter() - Добавление фильтра по типу поля integer
- Функция SphinxClient::setFilterFloatRange() - Добавление фильтра по диапазону значений (для поля типа float)
- Функция SphinxClient::setFilterRange() - Добавление фильтра по диапазону значений (для поля типа integer)
- Функция SphinxClient::setGeoAnchor() - Установка опорной точки для рассчета географической удаленности
- Функция SphinxClient::setGroupBy() - Установка аттрибута группировки
- Функция SphinxClient::setGroupDistinct() - Установка названия аттрибута для расчета количества уникальных значений при группировке
- Функция SphinxClient::setIDRange() - Установка диапазона значений допустимых ID документов
- Функция SphinxClient::setIndexWeights() - Установка весовых коэффициентов индексов
- Функция SphinxClient::setLimits() - Установка смещения и предельного числа значений для набора результатов
- Функция SphinxClient::setMatchMode() - Установка режима совпадения при полнотекстовом поиске
- Функция SphinxClient::setMaxQueryTime() - Установка максимального времени выполнения запроса
- Функция SphinxClient::setOverride() - Временное переопределение значений атрибута для документов
- Функция SphinxClient::setRankingMode() - Установка режима ранжирования
- Функция SphinxClient::setRetries() - Установка количества повторных попыток и задержки между ними
- Функция SphinxClient::setSelect() - Установка условия выборки
- Функция SphinxClient::setServer() - Установка хоста и порта searchd
- Функция SphinxClient::setSortMode() - Установка режима сортировки результатов
- Функция SphinxClient::status() - Запрос статуса searchd
- Функция SphinxClient::updateAttributes() - Обновление аттрибутов документа
Коментарии
Sphinx search support now more than 3 ranking mode.
1) SPH_RANK_NONE ranker just assigns every document weight to 1.
2) SPH_RANK_WORDCOUNT ranker counts all the keyword occurrences and multiplies them by user field weights.
3) SPH_RANK_FIELDMASK ranker returns a bit mask of matched fields.
4) SPH_RANK_PROXIMITY, the default ranker in SPH_MATCH_ALL legacy mode, simply passes the phrase proximity for a weight.
5) SPH_RANK_MATCHANY ranker, used to emulate legacy MATCH_ANY mode, combines phrase proximity and the number of matched keywords so that, with default per-field weights, a) longer sub-phrase match (aka bigger phrase proximity) in any field would rank higher, and b) in case of agreeing phrase proximity, document with more matched unique keywords would rank higher. In other words, we look at max sub-phrase match length first, and a number of unique matched keywords second. In pseudo-code,
6) SPH_RANK_PROXIMITY_BM25, the default SphinxQL ranker and also the default ranker when “extended” matching mode is used with SphinxAPI
7) SPH_RANK_BM25 ranker sums user weights of the matched fields and BM25.
8) SPH_RANK_SPH04 ranker further improves on PROXIMITY_BM25 ranker (and introduces numbers instead of meaningful names, too, because a name would be way too complicated). Phrase proximity is still the leading factor, but, within a given phrase proximity, matches in the beginning of the field are ranked higher, and exact matches of the entire field are ranked highest.
SOURCE & Details : http://sphinxsearch.com/blog/2010/08/17/how-sphinx-relevance-ranking-works/