Объясненная оценка полнотекстового поиска MySQL

В последнее время я экспериментировал с полнотекстовым поиском, и мне любопытно узнать значение значения 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 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам