リレーショナル データベースでは、検索クエリによって返される行は、クエリによって呼び出されるすべての条件を満たす必要があります。 一方、Windows Search クエリでは、検索条件を満たすドキュメントをさまざまな程度に返すことができます。
たとえば、リレーショナル データベースで "program" という用語を検索すると、その単語の特定のスペルを含むレコードが生成されます。 レコードに単語のインスタンスが 1 つまたは 100 個含まれているかどうかに関係なく、結果には影響しません。 これに対し、Windows Search は、一致するドキュメントに関連付けられた関連性の値を返します。 タイトルに "program" を含むドキュメントの関連性は、最後の段落でのみ単語を含むドキュメントよりも高くなります。 同様に、検索用語のバリエーション ("programs" や "programming" など) を含むドキュメントも一致し、クエリによって返されます。
Windows Search クエリは、"rank" という名前の列に整数の関連性値を返します。
さらに:
- クエリによって返されるランク値は、0 から 1000 までの整数です。
- ランク値が高いほど、検索条件に一致するドキュメントが示されます。
- ランク値は現在のクエリにのみ適用されるため、クエリ間で結果を比較することはできません。
- ランク値は、クエリに一致する他のドキュメントに対する相対値です。 そのため、特定のドキュメントのランク値は、クエリと一致する他のドキュメントによって異なります。
- 純粋リレーショナル述語に一致する項目のランク値は 1000 です。
返されるランク値を操作するには、CONTAINS 内の列の重みを使い、FREETEXT WHERE 句の述語や RANK BY 句を用います。