フルテキスト フィールドを持つテーブルがあるとします。このフィールドは と呼ばれtext
ます。テーブルの内容は次のようになります。
car wash
car and wash
言葉and
は私の中にあるstoplist
ここで、次の sql を使用してこのテーブルにクエリを実行します。
select * from mytable
where contains(text, '"car wash"')
このクエリは、car wash
行ではなく行のみを返しますcar and wash
。単語がストップ ワードであると仮定すると、 SQL が行and
を返さないのはなぜですか?car and wash
私はフレーズ検索を行っていることを知っています ("" を使用)。それはまさに私が必要としているものですが、Sql はストップ リスト内の単語を無視する必要があり、それは起こっていることではないと思います。それは私を夢中にさせています。
私の理解では、FT アルゴリズムがそのようなフレーズを見つけると、car and wash
インデックスのみが作成されcar
、wash
. これは本当ですか?
また、クエリを実行するft_parser
と、期待どおりの内容が表示されます。
SELECT * FROM sys.dm_fts_parser ('"car and wash"', 1033, 5, 0)
special_term display_term
Exact Match car
Noise Word and
Exact Match wash
何かご意見は?