SQL SERVER の ISABOUT クエリで加重用語がどのように機能するかを正確に理解しようとしています。
これが私が現在いる場所です:
各クエリは次の行を返します。
QUERY 1 (重み 1): 初期ランキング
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (1) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 249
272619 156
221557 114
QUERY 2 (重み 0.8): ランキングが上昇し、最初の順序が保持されます
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.8) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 321
272619 201
221557 146
QUERY 3 (重み 0.2): ランキングが上昇し、最初の順序が保持されます
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.2) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
306342 998
272619 877
221557 692
クエリ 4 (重み 0.17): ランキングが下がり、最適な一致が最後になり、これらの用語の逆の動作が 0.17 から始まります
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.17) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
272619 960
221557 958
306342 802
QUERY 5 (重み 0.16): ランキングが上昇し、ベストマッチが 2 番目になりました
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.17) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
272619 978
306342 935
221557 841
QUERY 6 (重み 0.01): ランキングが下がり、ベスト マッチが最後に戻る
SELECT * FROM CONTAINSTABLE(documentParts, title, 'ISABOUT ("e" weight (0.01) ) ') ORDER BY RANK DESC, [KEY]
KEY RANK
221557 105
272619 77
306342 50
重み 1 のベスト マッチのランクは 249 で、重みが 0.2 に下がると、ベスト マッチのランキングは 998 に上がります。検索された列で... )
「この用語を含めないでください」のように、重量が反対を意味するポイントがあるようです。この動作について説明はありますか?体重が減るとランキングが上がるのはなぜですか?結果が逆転するまでランキングが下がるのはなぜですか? また、このポイントをどのように予測できますか?
ユーザーが次のクエリを作成する何かを検索するときに、カスタムの「ワード ブレーカー」を使用します。
CONTAINSTABLE(documentParts, title,
'ISABOUT (
"wordA wordB wordC" weight (0.8),
"wordA*" NEAR "wordB*" NEAR "wordC*" weight (0.6),
"wordA*" weight (0.1),
"wordB*" weight (0.1),
"wordC*" weight (0.1),
) ')
0.1 ワードに大きなランクが期待できますか?
次のクエリは上記と同じですか? 0.1 ランキングで奇妙な動作が予想されますか?
CONTAINSTABLE(documentParts, title, '
ISABOUT ( "wordA wordB wordC" weight (0.8) ),
OR ISABOUT ( "wordA*" NEAR "wordB*" NEAR "wordC*" weight (0.6) ),
OR ISABOUT ( "wordA*" weight (0.1) ),
OR ISABOUT ( "wordB*" weight (0.1) ),
OR ISABOUT ( "wordC*" weight (0.1) ),
')