1

1 つのテーブルで複数の単語を検索しようとしていますが、フィールドは異なります。対応する単語が 1 つあるレコードが、2 つあるレコードよりもランクが高いのはなぜですか? 例:

レコード 1

タイトル:エディ・マーフィ

説明:アメリカのスタンダップ コメディアン、俳優、作家、歌手、監督、ミュージシャン。

レコード 2

タイトル:トム・クルーズ

説明:アメリカの映画俳優兼プロデューサー。彼はゴールデングローブ賞を3回受賞しています。

SELECT * FROM FREETEXTTABLE(SubjectContent, (Title, Description), 'tom actor')

レコード 2 には両方の単語 ('tom' と 'actor') が含まれ、レコード 1 には 1 つの単語 ('actor') しか含まれていないにもかかわらず、ランク 61 のレコード 1 とランク 47 のレコード 2 を返します。そのため、ユーザーは適切なレコードの前に大量の不適切なレコードを受け取ります。

ただし、検索パラメーター「トム クルーズ アクター」を設定すると、リクエストは上位を返します。

私の全文索引:

CREATE FULLTEXT INDEX ON SubjectContent(Title, [Description]) 
KEY INDEX PK_SubjectContent
ON FullTextSearch;

フル テキスト カタログのプロパティ 'accentsensitive' およびその他のプロパティを変更しようとしましたが、失敗しました。助けてくれてありがとう。

4

1 に答える 1

2

2 つの文字列を見ると、フルテキストの観点から見ると、2 番目の文字列の方が大きいドキュメントであることがわかります。これは、そこにある文区切りのためです。したがって、これらの文字列を dm_fts_parser に渡すと、最初の文字列の最大出現回数が 11 で、2 番目の文字列が 21 であることがわかります。フルテキストは、このドキュメントの長さを 16、32、128、256 などのバケットで正規化します。ドキュメントは最初のバケットに分類され、2 番目のドキュメントは 2 番目のバケットに分類されます。したがって、最初のほうがランクが高くなります (ドキュメントの長さに反比例します)。このすべての参照はこちらhttp://msdn.microsoft.com/en-us/library/cc879245.aspx ありがとう Venkat

于 2012-12-12T18:59:01.260 に答える