我有一个数据库表,其中有几列是VARCHAR(x)类型的列,其中一些列在其上具有索引,以便我可以快速搜索其中的数据。但是,其中一列是TEXT列,因为它包含了大量的数据(23kb的纯ASCII文本等)。我想能够在该列中搜索 (...WHERE col1 LIKE '%search string%'...), 但目前查询非常缓慢。我知道查询缓慢是因为这个列的搜索,因为当我从WHERE子句中删除该条件时,查询完成得非常快。我无法在该列上添加索引,因为SQL Server Management Studio的索引生成器/向导中该列的选项被灰色禁用了。那么,在这里加速对该列的查询搜索的选择是什么?感谢您的时间...
更新 好吧,我研究了全文搜索并做了所有的事情,现在我想运行查询。然而,当使用"contains"时,它只接受一个单词;如果我需要一个精确的短语怎么办?... WHERE CONTAINS (col1, 'search phrase') ... 抛出错误。
抱歉,我是 SQL Server 的新手。
更新2 抱歉,刚刚发现了这个问题;使用多个"contains"子句而不是一个包含多个单词的子句。实际上,这仍然不能得到我想要的结果(精确短语),它只是确保短语中的所有单词都存在。
更新 好吧,我研究了全文搜索并做了所有的事情,现在我想运行查询。然而,当使用"contains"时,它只接受一个单词;如果我需要一个精确的短语怎么办?... WHERE CONTAINS (col1, 'search phrase') ... 抛出错误。
抱歉,我是 SQL Server 的新手。
更新2 抱歉,刚刚发现了这个问题;使用多个"contains"子句而不是一个包含多个单词的子句。实际上,这仍然不能得到我想要的结果(精确短语),它只是确保短语中的所有单词都存在。