2つの異なるサーバーにフルテキストカタログを持つ同じテーブルがあります。両方のサーバーの両方のテーブルにインデックスが作成され、同じ設定が適用されます。私はサービスを再起動し、カタログを再構築しようとしました。両方のサーバーで同じクエリを実行すると、両方のサーバーに表示されているFREETEXTTABLEのRANKが異なって表示されます。以下はサンプルクエリです。SQL - 同じフルテキスト検索が異なるサーバーで異なる結果を返すのはなぜですか?
SELECT *COLUMNS*
FROM TABLE
INNER JOIN FreeTextTable (TABLE, INDEXEDCOLUMN, N'"Sabariah Mohamed Ali" or "Ali Mohamed Sabariah"', 100) as KEY_TABLE ON TABLE.INDEX = KEY_TABLE.[KEY]
WHERE KEY_TABLE.rank > 30
Select *COLUMNS*
from TABLE
Inner Join Containstable (TABLE, INDEXEDCOLUMN, N'"*Sabariah" or "Sabariah*"
or "*Mohamed" or "Mohamed*"', 100) as KEY_TABLE on TABLE.INDEX =
KEY_TABLE.[KEY]
where KEY_TABLE.rank > 30
表の索引付き列には、「Sabariah Binti Mohamed Ali」が含まれています。したがって、結果を返す必要がありますが、KEY_TABLEのRANKをチェックすると、両方のサーバーが異なる番号を返します。
私は私の問題は、これに似ていると思う、Full text search returns different results on test and live
編集:、同様の問題を見つけて解決策を試してみました、ダミーのテーブルを作成し、インデックスやカタログを作成し、同様に動作しません。 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a5532c9a-ece2-40cb-a8ac-4f53ba96175c/problem-with-rank-on-freetexttable?forum=sqldatabaseengine#f51bb4a9-725b-499f-961a-9492bed0a1f0
ご迷惑をおかけして申し訳ございません。しかし、両方のサーバーのランクはかなり異なっています。データを見ると、両方のサーバーのインデックス列は同じ値を持ちますが、ランクは20以上異なります。それは普通だと思われますか? – Jie
私が知っている限り、ランクは検索結果を注文するだけです。ランク順の 'containstable'の結果が同じである限り、絶対ランク値はほとんど無関係です。 –