4

SQL Server 2014 Express を使用しており、テーブルにフルテキスト インデックスを設定しています。

フルテキスト インデックスは、この例では という名前の 1 つの列のみにインデックスを付けfooます。

テーブルには 3 つの行があります。そのフルテキスト インデックス付き列の 3 行の値は次のようになります...

test 1
test 2
test 3 test 1

上記の新しい各行はテーブルの新しい行であり、そのテキストは文字どおりフルテキスト インデックス付き列にあるものです。したがって、SQL Server のCONTAINS関数を使用して、次のクエリを実行すると、期待どおり、すべての行が一致として返されます。

SELECT * FROM example WHERE CONTAINS(foo, 'test')

しかし、次のクエリを実行すると、すべての行が一致として返されますが、これは予期していません。次のクエリでは、1 行だけが一致すると予想していました。

SELECT * FROM example WHERE CONTAINS(foo, '"test 3"')

最後に、単純に「3」を検索すると、一致する行が返されません。これも予想外でした。次のクエリから 1 つの一致する行が期待されますが、何も取得されません。

SELECT * FROM example WHERE CONTAINS(foo, '3')

CONTAINS全文索引作成に関する MSDN ページを読みましたが、この動作がわかりません。私は何か間違ったことをしているに違いない。

何が起こっているのか、私が説明した検索を実行する方法を説明できる人はいますか?

4

1 に答える 1