0

我正在使用 SQL Server 2008 R2,并使用 CONTAINSTABLE ISABOUT() 来识别文档标题中的关键短语。但是,一个特定的关键短语会产生误报。他们的关键词是:“phc行业”(不带引号)。这是一些说明问题的示例代码:-

CREATE TABLE tmp_test (myidentifier nvarchar(30) NOT NULL, mytext varchar(max));  
CREATE UNIQUE CLUSTERED INDEX test_key ON tmp_test(myidentifier);  
CREATE FULLTEXT CATALOG tmp_test_cat;  
CREATE FULLTEXT INDEX ON tmp_test(mytext) KEY INDEX test_key ON tmp_test_cat;  
GO   

INSERT tmp_test VALUES ('good case','Western p-h-c industry');
INSERT tmp_test VALUES ('bad case','competitive advertising industry');
GO  

SELECT * FROM CONTAINSTABLE (tmp_test, mytext, 'ISABOUT ("p-h-c industry" WEIGHT (.8))') ORDER BY RANK DESC;  
go

KEY                            RANK
------------------------------ -----------
Informational: The full-text search condition contained noise word(s).
good case                      15
bad case                       15

(2 row(s) affected)

我希望 SELECT * FROM CONTAINSTABLE() 只为“好案例”返回一行,因为存在完全匹配。但是,即使关键阶段“phc 行业”没有出现在坏案例文本中,它也会为“坏案例”返回一行。

任何人都可以建议修复或解决方法吗?我必须使用 CONTAINSTABLE() 来完成它,因为代码架构是围绕它构建的。谢谢

4

0 回答 0