私はftsを使用していて、テキストに文字列 "clf"が含まれていると奇妙な動作が見られました。何らかの理由で、 "clf"文字列を持つ文書のために作成されたキーワードは、 "clf"の代わりに他の文字列を持つほとんど同じ文書とは動作が異なります。私たちは、キーワードが"CLF"の文書の奇妙なキーワード
SELECT * FROM sys.dm_fts_index_keywords_by_document(DB_ID('db_name'), OBJECT_ID('dbo.test1'))
を作成照会するときベローは、その後、我々は「CLF」との文書のために作成されたキーワードは、「AAA」と「BBB」と、その後異なっていることがわかります説明した動作
CREATE TABLE [dbo].[test1](
[id] [int] NOT NULL,
[data] [nvarchar](max) NULL,
CONSTRAINT [PK_test1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE FULLTEXT CATALOG test_catalog;
CREATE FULLTEXT INDEX ON [dbo].test1
(
data
)
KEY INDEX [PK_test1] ON test_catalog
insert into dbo.test1 values (1, N'17 12 CLF'), (2, N'17 13 bbb'), (3, N'17 129 CLF'), (4, N'17 139 aaa')
を再作成するためのコードです。たとえば、文書4の場合、キーワード「139」がありますが、文書3の場合は「129」はなく、「17 129 clf」しかありません。
この動作の理由は何ですか? ftsが "clf"の有無にかかわらず同じ方法で動作するようにする簡単な方法はありますか?
テキストをアクセントで検索(CONTAINSを使用)しますか? – abc667
わかりませんが、照合設定に依存する必要があります。 –