比如SQL免费文本搜索



也许这是一个愚蠢的问题。

我如何实现在sql"像'%测试%'使用自由文本?

我认为包含和自由文本相当于"喜欢%测试%",加上一个get的语法检查,和性能。

在我的例子中,我有:

select * from ServiceOfferResultIndexed where contains(FirstName,'test') 

等于18

rows.select * from ServiceOfferResultIndexed where FirstName like '%test%'

得到229行。

谢谢你的帮助。

数据库为MS SQL 2005。我认为它支持* as后缀。它似乎,如果我提供"*测试",*被认为是一个词,而不是一个通配符。Test变成了后面的单词。

Contains将只支持"test *",它查找所有以'test'开头的短语,后面跟着任何其他字符。

这是两种不同的表达。LIKE '%test%'将找到这四个字符在一起的任何一行(例如,证言,或选手),contains将匹配单词。

我不知道你在使用什么全文引擎,但通常通配符是支持的。例如,如果使用where contains(firstame, '*test*')会发生什么?

在自由文本搜索中,您必须查阅您的特定dbms的通配符文档。

最新更新