可以告诉 CONTAINSTABLE 在每个搜索词中查看哪一列吗?
Can CONTAINSTABLE be told which column to look in per search term?
根据我的理解,似乎可以为 CONTAINSTABLE
提供一个索引列列表以在其中进行搜索。它将采用给定的搜索参数并在任何指定的列中查找它们。
是否可以使用 CONTAINSTABLE
在 A 列中查找 "FOO",在 B 列中查找 "BAR"?
我正在尝试优化我的搜索查询,但它 运行 很慢。它是一个基本的 CONTAINSTABLE
,带有额外的 CONTAINS
谓词用于额外的列过滤器。如果可能的话,我试图将所有搜索压缩成一个 CONTAINSTABLE
。
您可以尝试将 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 查询中获取关键值的快速临时 table,然后返回源 table 以获取您需要的额外数据或进行额外的过滤。
我原来问题的直接答案是:否。
根据我的理解,似乎可以为 CONTAINSTABLE
提供一个索引列列表以在其中进行搜索。它将采用给定的搜索参数并在任何指定的列中查找它们。
是否可以使用 CONTAINSTABLE
在 A 列中查找 "FOO",在 B 列中查找 "BAR"?
我正在尝试优化我的搜索查询,但它 运行 很慢。它是一个基本的 CONTAINSTABLE
,带有额外的 CONTAINS
谓词用于额外的列过滤器。如果可能的话,我试图将所有搜索压缩成一个 CONTAINSTABLE
。
您可以尝试将 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 查询中获取关键值的快速临时 table,然后返回源 table 以获取您需要的额外数据或进行额外的过滤。
我原来问题的直接答案是:否。