1

我目前正在尝试添加一个全文索引,以便能够在包含关键词的叙述列中搜索关键词。我尝试了许多不同的教程,虽然我完全复制了它们,但在“WHERE”部分中使用“CONTAINS”功能时,我无法复制结果。

下面是我一直在使用的一些示例数据的脚本示例。有人可以向我解释为什么这不起作用,因为我正在努力寻找错误可能在哪里。

CREATE TABLE dbo.AAAA_FullTextTest5
    (ID INT Identity(1, 1) NOT NULL
    ,LOCATION VARCHAR (255)
    ,NARRATIVE VARCHAR(MAX)
    )

ALTER TABLE dbo.AAAA_FullTextTest5 add constraint PK_FullTextTest5 PRIMARY KEY (ID)

INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('USA Texas', 'WRIGHT BROTHERS')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Worldwide', 'CROWN PROS Builders LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Devon United Kingdom', 'J PJH ROOFING LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('UK', 'Shoreham Port Authority and Shoreham Port Developments & The Port of Shoreham Trustees ')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('EUROPE AND RUSSIA', 'ZHY SERVICES')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Austrialia', 'BrotherLimited')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('ASIA', 'DRILLING SERVICES LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('JAPAN', 'BROOKS WASTE LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Melbourne', 'TRC Service Company')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('GERMANY & HOLLAND', 'Samson Group')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Frankfurt', 'SCAFFOLDING LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Swindon, England', 'Scaffold Access Ltd')

CREATE FULLTEXT CATALOG FullTextTest5

CREATE FULLTEXT INDEX ON dbo.AAAA_FullTextTest5 (
             Location language 1033
            ,Narrative language 1033)
KEY INDEX PK_FullTextTest5 ON FullTextTest5
WITH CHANGE_TRACKING AUTO

SELECT * FROM dbo.AAAA_FullTextTest5 
WHERE CONTAINS(NARRATIVE, 'Access')
4

1 回答 1

0

根据此处的说明:https ://msdn.microsoft.com/en-us/library/ms142497.aspx ,以下似乎在我本地安装的 SQL Server 2008 R2 以及我的本地安装 SQL 中正常工作服务器 2012:

CREATE TABLE dbo.AAAA_FullTextTest5
    (ID INT Identity(1, 1) NOT NULL
    ,LOCATION VARCHAR (255)
    ,NARRATIVE VARCHAR(MAX)
    )
GO

CREATE UNIQUE INDEX UI_AAAA_FullTextTest5 ON dbo.AAAA_FullTextTest5(ID)
GO

INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('USA Texas', 'WRIGHT BROTHERS')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Worldwide', 'CROWN PROS Builders LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Devon United Kingdom', 'J PJH ROOFING LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('UK', 'Shoreham Port Authority and Shoreham Port Developments & The Port of Shoreham Trustees ')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('EUROPE AND RUSSIA', 'ZHY SERVICES')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Austrialia', 'BrotherLimited')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('ASIA', 'DRILLING SERVICES LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('JAPAN', 'BROOKS WASTE LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Melbourne', 'TRC Service Company')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('GERMANY & HOLLAND', 'Samson Group')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Frankfurt', 'SCAFFOLDING LTD')
INSERT INTO dbo.AAAA_FullTextTest5 (LOCATION, NARRATIVE) VALUES ('Swindon, England', 'Scaffold Access Ltd')
GO

CREATE FULLTEXT CATALOG AAAA_FTCat;
GO

CREATE FULLTEXT INDEX ON AAAA_FullTextTest5
(
    NARRATIVE                         --Full-text index column name 
    Language 2057                 --2057 is the LCID for British English
)
KEY INDEX UI_AAAA_FullTextTest5 ON AAAA_FTCat --Unique index
WITH CHANGE_TRACKING AUTO            --Population type;
GO

完成上述设置后,我可以查询:

SELECT * FROM AAAA_FullTextTest5
WHERE CONTAINS(NARRATIVE, 'Access')

并得到这个结果集:

ID    LOCATION            NARRATIVE
12    Swindon, England    Scaffold Access Ltd
于 2015-03-25T14:23:36.383 回答