如果索引存在,如何构建使用全文搜索的SQL查询?

时间:2009-03-12 21:52:12

标签: sql-server full-text-search

我需要构建一个sqlserver查询,如果文本列有全文索引,它将被使用,否则,查询将降级为LIKE '%word%'的O(N²)方法?

我相信答案会是这样的:

IF has_full_text_index('mycolumn')
    select mytable_id from mytable where contains(mycolumn, 'word')
ELSE
    select mytable_id from mytable where mycolumn like '%word%'
ENDIF

查询将由程序生成。查询将始终只有一个单词匹配。检查列是否具有全文索引的测试必须快速。

1 个答案:

答案 0 :(得分:1)

虽然我倾向于同意肯,你知道哪些表属于全文目录,但你可以查询

sp_help_fulltext_tables {catalogname}

表示目录中的表格。 (通过MSDN