サポートされるクエリ用語の形式 (フルテキスト検索)

ここでは、SQL Server でサポートされるフルテキスト クエリの形式を紹介し、フルテキスト述語および行セット値関数による各クエリ形式のサポートの概要について説明します。フルテキスト クエリは、フルテキスト インデックスが設定されている列に対してのみ実行できます。

クエリ用語の形式

説明

使用できる述語または関数

1 つ以上の語または句 (単純語句)

フルテキスト検索では、語はトークンと見なされます。トークンは、指定された言語の文字種による規則に従って、適切なワード ブレーカによって識別されます。句は、複数の語から構成されます。句読点を含む場合も含まない場合もあります。

たとえば、"croissant" は語、"café au lait" は句です。このような語や句は単純語句と呼ばれています。

詳細については、「特定の語または句 (単純語句) の検索」を参照してください。

CONTAINS と CONTAINSTABLE (句に完全一致するものを検索します)、および FREETEXT と FREETEXTTABLE (句を個々の語に分解します)。

指定したテキストで始まる語または句 (プレフィックス語句)

プレフィックス語句とは、派生語または変化形を生成するために語の前に付けられる文字列です。

1 つのプレフィックス語句の場合、指定したプレフィックス語句で始まるすべての語が、結果セットに含まれます。たとえば、"auto*" は、"automatic"、"automobile" などに一致します。

句の場合、句を構成する各語がプレフィックス語句と見なされます。たとえば、"auto tran*" は "automatic transmission" や "automobile transducer" に一致しますが、"automatic motor transmission" には一致しません。

詳細については、「プレフィックス検索の実行」を参照してください。

CONTAINS と CONTAINSTABLE。

特定の語の変化形 (生成語)

変化形は、動詞のさまざまな時制、または名詞の単数形と複数形です。たとえば、"drive" という語の変化形を検索します。テーブルのさまざまな行に、"drive"、"drives"、"drove"、"driving"、および "driven" が含まれている場合、これらはどれも drive という語から変化して生成されているので結果セットに入ります。

詳細については、「特定の語の変化形 (生成語) の検索」を参照してください。

FREETEXT クエリと FREETEXTTABLE クエリでは、指定されたすべての語の変化形の語句を既定で検索します。

CONTAINS と CONTAINSTABLE では、省略可能な INFLECTIONAL 引数をサポートしています。

他の語または句に近接する語または句 (近接語句)

近接語句とは、任意の順序で、他の語または句、あるいは 2 つの語または句に近接する語または句を表します。

たとえば、"ice" という語の近くに "hockey" という語がある行や、"ice skating" という句の近くに "ice hockey" という句がある行を検索できます。2 つの語または句が互いに近いと見なされるかどうかは内部で計算され、ユーザーが構成することはできません。近接の計算時には、多数のデータ ポイントが対象となります。

この種のクエリでは、検索語句が互いに近くなくても、それらの語句を含むドキュメントまたは行も返されます。このような結果については、順位付けはゼロ (0) になります。

詳細については、「他の語または句に近接する語または句 (近接語句) の検索」を参照してください。

CONTAINSTABLE。

注意
FREETEXT と FREETEXTTABLE では、近接の構文は検索可能な文字列として解釈され、期待される結果は得られません。

特定の語のシノニム形 (類義語)

類義語辞典は、ユーザー指定の用語のシノニムを定義します。たとえば、エントリ "{car, automobile, truck, van}" が類義語辞典に追加されると、"car" という語の類義語形式を検索できます。"automobile"、"truck"、"van"、または "car" という語は、"car" という語を含むシノニムの拡張セットに属しているため、クエリ処理されるテーブルの行のうち、これらのいずれかの語を含むすべての行が結果セットに表示されます。

類義語辞典ファイルの構造については、「類義語辞典の構成」を参照してください。

FREETEXT クエリと FREETEXTTABLE クエリでは、類義語辞典を既定で使用します。

CONTAINS と CONTAINSTABLE では、省略可能な THESAURUS 引数をサポートしています。

重み付け値を使用している語または句 (重み付け語句)

一連の語句内における各語句の重要度を示す重み付け値です。重み付け値 0.0 は最低値であり、重み付け値 1.0 は最高値です。

たとえば、複数の語句を検索するクエリでは、検索条件の各検索語に、他の語との相対的な重要性を示す重み付け値を割り当てることができます。この種のクエリ結果では、検索語に割り当てた相対的な重みに従って、最も関連性の高い行が最初に返されます。結果セットには、指定した語句 (またはそれらの間のコンテンツ) のいずれかを含むドキュメントまたは行が含まれます。ただし、各検索語句に関連付けられている重み付け値の違いにより、一部の結果が他の結果より関連性が高いと見なされます。

詳細については、「重み付け値を使用する語または句 (重み付け語句) の検索」を参照してください。

CONTAINSTABLE。

注意
重み付け語句を指定して CONTAINS または FREETEXT を使用した場合、取得される行に関連性は加味されません。FREETEXT と FREETEXTTABLE では、重み付け語句は検索可能な文字列として解釈され、期待される結果は得られません。