Почему или как FREETEXTTABLE дает значение ранга выше, чем другие - PullRequest
1 голос
/ 17 октября 2008

Существует процедура сохранения, которая дважды использует FREETEXTTABLE для двух таблиц, а затем объединяет результаты и возвращает первые 50.

Проблема в том, что если я выполню поиск "Женщины Брюстера", результаты выдадут "Признание бывшей дочери мухи" с рангом 143 из таблицы А и второе "Женщины из Брюстера" с рангом 102 из таблицы Б.

Это из-за счета? (Итоговые результаты по таблице A - 2399. Итоговые результаты по таблице B - 3445.)

Ответы [ 2 ]

4 голосов
/ 17 октября 2008

Краткий ответ:

Рейтинг в свободном тексте основан на OKAPI Рейтинг ранга BM25. Каждый член в запрос ранжируется, а значения суммируется. Свободные текстовые запросы добавят слова к запросу через инфлективный поколение (стволовые формы оригинальные условия запроса); эти слова рассматриваются как отдельные термины без особый вес или отношения с слова, из которых они были генерироваться. Синонимы, полученные из Функция тезауруса рассматривается как отдельные, одинаково взвешенные термины.

Конечно, гораздо более длинный и более сложный ответ можно найти на сайте Microsoft. Для углубленной математики нажмите здесь .

1 голос
/ 20 октября 2008

1) Файл шума был ограничен несколькими символами, что означает, что слово «of» теперь считается важным.

2) Результаты двух таблиц (количество) имеют значение, так как меньшая таблица, скорее всего, получит лучшее значение веса. Это изменит ранг, чтобы быть выше в меньшей таблице.

Ссылка Джозефа на MSDN была хороша для выяснения того, как он вычисляет значение ранга.

...