我使用 CONTAINSTABLE 搜索两个表列。一旦搜索包含像“的”“的”“A”的搜索返回任何结果,甚至当他们在列实际存在。

小的话

快速例子。塔中搜索包含文本。 “系统需要升级”

以下SQL返回0行

SELECT     * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM         [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "to" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "to" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))

在 '到' 中省略它工作得很好:

SELECT     * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM         [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))

如何CONTAINSTABLE可以与这些较小的话使用,或者它们应当完全略去?如果这些小词语的搜索实际上是有意义的,如何对它们进行包括在搜索?

有帮助吗?

解决方案

这些都不是“小的话”,这些是停止列表上的常用词。它们将被忽略。

请参阅停用词和BOL索引字表

其他提示

请参阅我的回答年底创建并配合定制的全文非索引字表的空单开始。我检查,并与空单查询作品有“为”,“是”,“中”,“对”等。

更新

SQL Server 2005中应该有MSSQL \ FTData文件\ noiseENG.txt。结果 我reccommend查看答案问题“在SQL干扰词Server 2005的全文检索“

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top