FREETEXTTABLEが他よりも高いランク値を与える理由または方法
-
03-07-2019 - |
質問
2つのテーブルでFREETEXTTABLEを2回使用し、結果をマージして上位50件を返すストアプロシージャがあります。
問題は、「Women of Brewster」で検索すると、「Confession of a ex doofus motha」という結果が返されることです。テーブルAのランク143、2番目の「ブリュースタープレースの女性」テーブルBのランクは102です。
これはカウントのためですか? (表Aの返品結果の合計は2399です。表Bの返品結果の合計は3445です。)
解決
簡単な答え:
フリーテキストランキングはOKAPIに基づいています BM25ランキング式。の各用語 クエリはランク付けされ、値は 合計した。フリーテキストクエリが追加されます 屈折を介したクエリへの単語 世代(の茎の形 元のクエリ用語);これらの言葉は なしの個別の用語として扱われます 特別な重み付けまたはとの関係 彼らがいた言葉 生成されました。から生成された同義語 シソーラス機能は次のように扱われます 個別に均等に重み付けされた用語。
もちろん、はるかに長く、はるかに複雑な答えは、Microsoftのサイトにあります。高度な数学については、ここをクリック。
他のヒント
1)ノイズファイルは数文字に制限されていました。つまり、「of」という単語が今は重要だと考えています。
2)2つのテーブルの結果(カウント)は重要です。小さいテーブルほど、より良い重み値が与えられる可能性が高いためです。これにより、小さなテーブルでランクが高くなります。
JosefのMSDNへのリンクは、ランク値の計算方法を理解するのに優れていました。