0

フリーテキストはテーブルからすべての単語を返しません。そして含まれていません

mycolumn="Life of a King" に含まれる行が 1 つあります。

私は2つの方法を試しました。最初の「含む」

SELECT * FROM MYTABLE WHERE CONTAINS(MYCOLUMN,'Life NEAR of NEAR a NEAR King')

それは何も返しません

2番:

SELECT * FROM MYTABLE WHERE FREETEXT(MYCOLUMN,'Life of a King')

237 行が返されます。これは;

「ライフ オブ パイ」「イッツ ア ワンダフル ライフ」「ライオン キング」「キング アーサー」「ライフ ストーリー」「ライフ オブ ア キング」など…

「Life」+「of」+「a」+「King」の単語のみを含む行を返したいです。

返信ありがとうございます。

4

2 に答える 2

0

フルテキスト フィールドが nvarchar であると想定しています。

これが私の例です:

CREATE TABLE [dbo].[FullTextTable](
    [ID] [int] NOT NULL PRIMARY KEY,
    [FullTextField] [nvarchar](max) NOT NULL
    );
GO

CREATE FULLTEXT INDEX ON FullTextTable([FullTextField]) 
   KEY INDEX [PK_FullTextTable]
   WITH STOPLIST = SYSTEM;
GO

正確な値を返す次のクエリ:

SELECT FullTextField
FROM FullTextTable
WHERE
CONTAINS 
(FullTextField, N'"Life NEAR of NEAR a NEAR King"' );
GO
于 2014-07-15T00:30:22.177 に答える