根据我的理解,可以为CONTAINSTABLE
提供一个要在其中搜索的索引列的列表。它将获取给定的搜索参数并在任何指定的列中查找它们。
是否可以使用CONTAINSTABLE
在A列中查找“FOO”,在B列中查找“BAR”?
我正在尝试优化我的搜索查询,并且运行缓慢。这是一个基本的CONTAINSTABLE
,其他CONTAINS
谓词可用于其他列过滤器。如果可能的话,我试图将所有搜索压缩为单个CONTAINSTABLE
。
答案 0 :(得分:1)
您可以尝试将CONTAINSTABLE加入另一个CONTAINSTABLE。
SELECT *
FROM CONTAINSTABLE (schema.FullTextTable, ColumnA, 'FOO') as CT1
JOIN CONTAINSTABLE (schema.FullTextTable, ColumnB, 'BAR') as CT2 ON CT1.[KEY] = CT2.[KEY]
JOIN schema.FullTextTable as FT ON CT1.[KEY] = FT.[KEY]
WHERE.....
然而,在你走这条路之前,我可能会考虑阅读以下帖子; Sql serve Full Text Search with Containstable is very slow when Used in JOIN! 基本上,从CONTAINSTABLE查询中获取关键值的快速临时表可能会有所帮助,然后返回源表以获取所需的其他数据或进行其他过滤。
答案 1 :(得分:0)
我原来问题的直接答案是:否。