2017-07-05 23 views
0

私は、Callという名前のSearchTermにリースというテーブルのフルテキストを持っています。 テーブルが正常に機能していない

は、私のような何かをやってみました: -

SELECT * FROM CONTAINSTABLE(Lease, SearchTerm, 'Canterbury*') 

レコードが返されません。私はSearchTermが '3 Canterbury Green || Imaging Technology Group'という記録を見ています。しかし、レコードは表示されません。誰が何が起こっているか教えてもらえますか?

+1

「SearchTerm」列のフルテキストインデックスを作成しましたか? –

+1

[このページ](https://technet.microsoft.com/en-us/library/ms142492(v = sql.105).aspx)によると、検索用語は、単一引用符で二重引用符で囲む必要があります。プレフィックス検索はそのように認識されるべきである。 – Richard

+0

これを試してください - 'SELECT * FROM CONTAINSTABLE(Lease、SearchTerm、 '* Canterbury *')' – ArunGeorge

答えて

0

文字ベースのデータ型を含むfull-text indexed columns でSQL Server全文検索を実行します。

CONTAINSTABLE

CREATE TABLE Flags (Country nvarchar(30) NOT NULL, FlagColors varchar(200)); 
CREATE UNIQUE CLUSTERED INDEX FlagKey ON Flags(Country); 
INSERT Flags VALUES ('France', 'Blue and White and Red'); 
INSERT Flags VALUES ('Italy', 'Green and White and Red'); 
INSERT Flags VALUES ('Tanzania', 'Green and Yellow and Black and Yellow and Blue'); 
INSERT Flags VALUES ('US', '3 Canterbury Green||Imaging Technology Group'); 
SELECT * FROM Flags; 
GO 

CREATE FULLTEXT CATALOG TestFTCat; 
CREATE FULLTEXT INDEX ON Flags(FlagColors) KEY INDEX FlagKey ON TestFTCat; 
GO 

SELECT * FROM Flags; 
SELECT * FROM CONTAINSTABLE (Flags, FlagColors, 'Canterbury') 
SELECT * FROM CONTAINSTABLE (Flags, FlagColors, '"Canterbury*"') 

あなたは@Richardが指定されている二重引用符で囲む'"Canterbury*"'をする必要があります。

*を指定する必要はありませんが、上記の選択が同じ結果を示すことがわかります。