Kin*_*ngs 1 sql full-text-search
我有一个'资产'表,其中包含'AssetDescription'列.它的每一行都有一些单词/句子,用逗号分隔.
第1行: - 花,全彩,女,趋势第2行
: - 宝宝闻花香,心
现在,如果放一个搜索查询,如: -
select * from Asset where contains(AssetDescription,'flower')
Run Code Online (Sandbox Code Playgroud)
它什么都不返回.
我还有一个带有'SearchCol'列的'SearchData'表,它具有与'Asset'表中提到的类似的行.现在,如果放一个搜索查询,如: -
select * from SearchData where contains(SearchCol,'flower')
Run Code Online (Sandbox Code Playgroud)
它返回两行.
题:-
为什么第一个查询不返回任何结果,但第二个查询正确.
如果"全文搜索"与第一个问题有关,那么该怎么做.因为我正在使用SQL Server 2000.
CONTAINS需要全文搜索索引,并且要启用全文搜索索引.LIKE不需要全文搜索.
使用CONTAINS优于LIKE的优点是CONTAINS更灵活,可能更快.根据您的使用方式,LIKE可能需要全表扫描.
与全文搜索相比,LIKE Transact-SQL谓词仅适用于字符模式.此外,您不能使用LIKE谓词来查询格式化的二进制数据.此外,针对大量非结构化文本数据的LIKE查询比针对相同数据的等效全文查询慢得多.对数百万行文本数据的LIKE查询可能需要几分钟才能返回; 而对于相同的数据,全文查询只需几秒或更短时间,具体取决于返回的行数.
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |