次の方法で共有


エンタープライズ検索 SQL 構文の FREETEXT 述語

テキスト列の単語や語句の検索をサポートする WHERE 句の一部です。

FREETEXT
([<full-text_column>,]'<freetext_condition>'[,<LCID>])…

Remarks

FREETEXT 述語は、列全体にわたる広範な検索語の組み合わせが含まれているドキュメントの検索に使用します。一方、CONTAINS 述語は、完全一意検索に使用します。FREETEXT 述語では、語句を二重引用符で囲むことによって語句の完全一致検索も実行できます。

フルテキスト列参照はオプションです。関連性を高めるには、DEFAULTPROPERTIES を指定することをお勧めします。次に例を示します。

…WHERE FREETEXT(DEFAULTPROPERTIES, 'computer software')

または、FREETEXT 述語の評価対象に単一列または列グループ エイリアスを指定することができます。すべてのインデックス テキスト プロパティが検索されます。列はテキスト プロパティである必要はありませんが、列が他のデータ型の場合は結果が無意味になる場合があります。列名は、通常のものでも区切られた識別子でもかまいませんが、コンマを使用して条件と区分する必要があります。フルテキスト条件を指定しない場合、ドキュメントの本文である Contents 列が使用されます。

すべての列を示すアスタリスク (*) でフルテキスト列参照を指定することもできます。

FREETEXT 述語では検索ロケールを指定できます。これにより、検索クエリで適切なワード ブレーカ、ノイズ ワード リスト、語尾変化形、および並べ替え順序を使用するように検索エンジンに指示します。ロケールを指定するには、Microsoft Windows 標準のロケール識別子 (LCID とも呼ばれる) を指定します。たとえば、1033 は英語 (米国) の LCID です。FREETEXT 句のかっこ内の最後の項目として LCID を配置します。検索および言語に関する重要情報については、「エンタープライズ検索 SQL クエリ言語の情報」の「Using Localized Searches」を参照してください。

注意

既定の検索ロケールは、システム既定のロケールです。

<freetext_condition> 部分は単一引用符で囲む必要があり、1 つ以上の検索語で構成する必要があります。FREETEXT 述語では論理演算子はサポートされません。語句を単一語として検索するには、語句を二重引用符で囲みます。

FREETEXT 述語の既定の動作では、クエリは次の条件に該当するドキュメントを返します。

  • ドキュメントの、指定された列の少なくとも 1 つにすべての検索語が含まれている。

  • 検索語の 1 つが、ドキュメントの本文を格納するプロパティである Contents 列にも含まれている。

各語が特定の順序で現れる必要はありません。より多くの検索語が含まれているドキュメントは上位ランクの列の値を持つ場合があります。

重要

FREETEXT 述語は検索クエリ内で 1 回だけ使用することをお勧めします。複数回使用すると、クエリはエラーなしで実行されますが、結果のランク付けは最適でなくなります。

FREETEXT 述語では、キーワード構文と同じ一致ルールによる包含の "+" 文字と除外の "-" 文字もサポートされます。一致ルールの詳細については、「エンタープライズ検索キーワード構文の包含と除外」を参照してください。

次の例は、"computer"、"software"、および "hardware" が含まれるドキュメントを検索します。

…WHERE FREETEXT('computer software hardware')

注意

この動作は、SharePoint Portal Server 2003 での FREETEXT 述語の動作とは異なります。

同じ FREETEXT 述語内で単語と語句のマッチングを使用できます。次の例は、単語 "software" と語句 "computer hardware" が含まれるドキュメントを検索します。

…FREETEXT('software "computer hardware"')

短縮形を含むクエリを、FREETEXT 述語を使用して実行する場合は、短縮形のアポストロフィをエスケープする必要があります。CONTAINS 述語を使用する場合はこの必要はありません。

たとえば、次の構文は失敗します。

…WHERE FREETEXT(*,'"We'll always have Paris"')

正しい構文では 2 つの単一引用符を含めます。

次の構文は成功します。

…WHERE FREETEXT(*,'"We''ll always have Paris"')

次の例は、検索語 "hardware" と "store" が含まれていて、かつ検索語 "computer" が含まれていないドキュメントを検索します。

…WHERE FREETEXT(DEFAULTPROPERTIES, 'hardware store -computer')

注意

FREETEXT 述語ではプロパティ フィルタはサポートされません。

次の例は、author プロパティに検索語 "John" が含まれているドキュメントを検索するのではなく、検索語 "author"、"John"、"computer"、"hardware" が含まれているドキュメントを検索します。

WHERE FREETEXT(DEFAULTPROPERTIES, 'author:John computer hardware')

次の例は、author プロパティに検索語 "John" が含まれていて、ドキュメント内の他の場所に検索語 "computer" と "hardware" が含まれているドキュメントを検索します。

…WHERE CONTAINS(author, 'John') AND FREETEXT(DEFAULTPROPERTIES, 'computer hardware')

注意

このクエリの結果のランク付けは、FREETEXT 述語のみに基づきます。

このセクションの内容

ノイズ ワードとエンタープライズ検索 SQL 構文の FREETEXT 述語

See Also

参照

エンタープライズ検索 SQL 構文の CONTAINS 述語

エンタープライズ検索 SQL 構文の WITH -- AS グループ エイリアス述語