0

データベースにシソーラス テーブルがあり、FREETEXT を使用してデータを収集したいと考えています。ただし、検索している文字列にはスペースが含まれています。

たとえば、コード「AB 001」を検索したい

select * 
from TheThesaurus
where freetext(TheDefinition, 'AB 001')

このコードは "AB" と "001" の両方を検索するため、より多くのジャンク結果が得られます。文字列を二重引用符で囲んでみましたが、うまくいきません。

select * 
from TheThesaurus
where freetext(TheDefinition, '"AB 001"')

完全な「AB 001」文字列を検索するにはどうすればよいですか??

LIKE を使用したところ、目的の結果が得られましたが、私の場合ははるかに高速で正確な結果が得られるため、全文検索を試してみたいと思います。

select * 
from TheThesaurus
where TheDefinition LIKE '%AB 001%'

ありがとう!

編集

を使用してみCONTAINSましたが、追加の結果が得られたので、なぜ返されたのか理解できませんでした。このCONTAINS機能は私にとっても機能しません:/

select * 
from TheThesaurus
where Contains(TheDefinition, 'AB%001')
4

1 に答える 1

0

クエリ

select * from TheThesaurus where Contains(TheDefinition, '"AB 001"')

フレーズ検索で正しい結果が得られます

于 2014-06-23T11:12:37.553 に答える