Объясненная оценка полнотекстового поиска MySQL - PullRequest
13 голосов
/ 23 октября 2008

В последнее время я экспериментировал с полнотекстовым поиском, и мне любопытно узнать значение значения Score. Например, у меня есть следующий запрос:

SELECT table. * ,
MATCH (
col1, col2, col3
)
AGAINST (
'+(Term1) +(Term1)'
) AS Score
FROM table
WHERE MATCH (
col1, col2, col3
) 
AGAINST (
'+(Term1) +(Term1)'
)

В результатах для Score я видел результаты для одного запроса в диапазоне от 0,4667041301727 до 11,166275978088. Я понял, что идея MySQLs актуальна (чем выше, тем больше вес).

Чего я не понимаю, так это как MySQL оценивает этот результат. Почему число не возвращается как десятичное или что-то еще?

Почему при выполнении запроса "В БУЛЕВОМ РЕЖИМЕ" счет всегда возвращает 1 или 0? Разве не все результаты будут 1?

Просто надеясь на какое-то просветление. Благодаря.

Ответы [ 2 ]

10 голосов
/ 24 октября 2008

В качестве примера возьмем запрос "word1 word2".

Режим BOOLEAN указывает, что весь ваш запрос соответствует документу (например, он содержит как word1, так и word2). Логический режим - строгое соответствие.

Обычно используемая формула основана на модели векторного пространства поиска. Очень упрощенно, он вычисляет две меры, чтобы определить, насколько важно слово для запроса. Частота термина (термины, которые часто встречаются в документе, более важны, чем другие термины) и частота обратных документов (термин, встречающийся во многих документах, имеет меньший вес, чем термин, встречающийся в нескольких документах) Это известно как tf-idf и используется в качестве основы для модели векторного пространства. Эти оценки формируют основу для модели векторного пространства , которую кто-то еще может подробно объяснить. :)

7 голосов
/ 23 октября 2008

Обычно релевантность зависит от того, сколько соответствий в каждой строке соответствует словам, заданным для поиска. Точное значение будет зависеть от многих вещей, но на самом деле это имеет значение только для сравнения с другими значениями релевантности в том же запросе.

Если вам действительно нужна математика, вы можете найти ее в руководстве по внутренним компонентам .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...