Обработка релевантности результатов поиска из нескольких таблиц с помощью FREETEXTTABLE
Я разрабатываю приложение, которое позволяет пользователю находить ссылки на продукт, выполняя поиск по ключевым словам (с помощью функции FREETEXTTABLE в полнотекстовой индексированной таблице для SQL 2008). Эти ссылки извлекаются из двух разных баз данных, которые являются надежными. Однако они не дают тот же результат, когда я заказываю по рангу. Я использую запрос, как следовать:
Select xxx FROM Table as P_TBL
INNER JOIN FREETEXTTABLE(Table, column,'key words',LANGUAGE 1033) AS F_TBL
ON P_TB.id = F_TBL.[Key]
ORDER BY RANK
Теперь я хотел бы найти наиболее релевантную ссылку в соответствии с их рейтингом по запросу ОБА.
Я задаюсь вопросом, лучше ли добавить рейтинг: например, рейтинг 115 для первой таблицы и рейтинг 95 во второй таблице дали бы в общей сложности 210 рангов. Или, если будет лучше их умножить (ссылка 100, 100 станет 10 000 ссылок), и, таким образом, ссылка 105,95 будет иметь меньше, потому что это не тот же результат, даже если он имеет тот же счет с добавлением.
Любые советы, чтобы улучшить актуальность результата для этой ситуации будет принята с благодарностью
1 ответ
Я не эксперт, но я бы пошел на сумму, так как FREETEXTTABLE может вернуть 0 в одной таблице, поэтому в этом случае умножение не будет отражать реальность. Я вижу аналогию в формуле ранжирования OKAPI BM25, где общий ранг вычисляется путем ранжирования отдельных терминов вашего запроса и суммирования их.