全文SQL Server数据库搜索使用标准修饰符(+, - ,“”等)

时间:2011-06-22 18:46:40

标签: sql-server tsql full-text-search boolean

我正在使用SQL Server FreeTextTable在项目中进行一些相关性搜索。它适用于大多数标准搜索,例如:

  • 沙发椅 - 搜索一个/或两个
  • “沙发椅” - 搜索“沙发椅”一词

我也想添加一些布尔搜索功能,例如:

  • 沙发和椅子 - 搜索沙发和椅子
  • sofa -chair - 搜索沙发但不是椅子
  • “绿色沙发”“红色椅子”搜索“绿色沙发”或“红色椅子”

我是否需要在搜索中执行LIKE / NOT LIKE短语然后执行FreeTextTable进行排名?还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

我认为LIKE / NOT LIKE是最简单的方法。将您正在解析的字符串用于搜索,例如“OR”和“AND”,并动态构建查询。同样,如果遇到' - '构建一个NOT语句。我认为这不会太难。

如果你想查看一些可用于SQL搜索的高级选项,我知道MySQL支持正则表达式字符串,你可以在这里阅读所有相关内容: http://dev.mysql.com/doc/refman/5.1/en/regexp.html