如何在sql server中实现多列全文搜索?

2023-11-24

我正在尝试对我为其创建视图的两列实施全文搜索:VendorName、ProductName。我有全文索引等工作,但实际查询是导致我出现一些问题的原因。

我希望用户能够使用一些标准搜索约定、AND OR NOT 以及按 () 进行术语分组,这很好,但我想在两列上应用搜索,例如,如果我要运行如下查询:

SELECT * FROM vw_Search 
WHERE CONTAINS((VendorName, ProductName), "Apple AND iTunes")

它似乎将查询单独应用于每一列,即检查两个术语的供应商名称,然后检查两个术语的产品名称,除非供应商被称为“Apple iTunes”,否则这两个术语不会匹配。

如果我将查询更改为:

SELECT * FROM vw_Search 
WHERE CONTAINS(VendorName, "Apple OR iTunes") 
AND CONTAINS(ProductName, "Apple OR iTunes")

那么它可以工作,但会破坏其他搜索查询(例如仅搜索 apple),并且从用户编写查询来看,它没有多大意义,因为他们可能会编写 AND,但它需要 OR 才能工作。

我想要的是如果两者之间的搜索词有效,它就会返回,这样它就会匹配所有名为 apple 的供应商和产品名称 itunes。

我是否应该在视图中创建一个单独的字段来连接供应商和产品字段并在该新字段上执行第一个查询,或者是否有我遗漏的内容?

除此之外,有人知道验证查询的现有方法吗?


在早期版本中SQL Server,查询在多个列中匹配。

然而,这被认为是bug.

要跨多个列进行匹配,您应该将它们连接在计算列中,并在该列上创建索引。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在sql server中实现多列全文搜索? 的相关文章

随机推荐

  • IIS Web Garden 优点/缺点 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 什么时候需要 IIS We
  • .NET Core 2 - 创建具有存储库的控制器类的实例

    我有以下控制器类 public class MyController Controller private IValueService service public MyController IValueService service th
  • 在 App.config 中使用 WCF 的 Windows 角色身份验证

    我正在使用 WCF 服务和 net tcp 端点 并将 serviceAuthentication 的主体 PermissionMode 设置为 UseWindowsGroups 目前 在服务的实现中 我使用PrincipalPermiss
  • 在 ajax 调用上显示 *浏览器* 加载指示器(例如发生回发时)

    示例 转到您的 Facebook 墙 滚动页面末尾 Facebook 将加载更多墙帖子异步地 或者只需单击墙上帖子中的图像 图像对话框 带有注释和较大图像 正在加载异步地以及 您可以使用 firebug 查看 GET 请求 但是通过查看 F
  • MVC 重定向到默认路由

    这是我的默认路线 routes MapRouteLowercase Default country controller action id new country uk controller Home action Index id Ur
  • 在 Ruby 中使用对象的属性对对象列表进行排序

    我有一个清单Fruit结构体称为basket Each Fruit结构体有一个name 一个字符串 和一个calories 一个整数 我想排序basket以便 The Fruits 最高的calories首先出现 例如 500 卡路里的水果
  • 互斥体和临界区有什么区别?

    请从Linux Windows角度解释一下 我正在用 C 编程 这两个术语有什么区别吗 请尽可能多地发帖 附上例子等等 Thanks 对于 Windows 临界区比互斥量更轻 互斥体可以在进程之间共享 但总是会导致对内核的系统调用 从而产生
  • 在 Swift 中访问 Flutter SharedPreferences

    是否可以访问SharedPreferences从 Flutter 中保存并在插件的 Swift 代码中访问 在Android中我们有FILE模式为SharedPreferences Swift 4 中有类似的功能吗 The shared p
  • nodejs websocket 检测断开的套接字

    我有一个nodejs websocket 服务器 但有以下问题 当我的客户端连接到服务器并正常终止时onclose在这些套接字上调用方法 然后对关闭的套接字执行清理操作 当客户端因网络原因断开连接时 onclose方法未被调用 是否有超时时
  • 外部 gem 的资产管道编码问题(UTF-8 与 ASCII-8BIT)

    我正在尝试创建一个包装 d3 js 的 gem 源代码可以在https github com iblue d3 rails 所以当我将这个 gem 包含在我的 Gemfile 中时 gem d3 rails git gt git githu
  • 如何检查表单是否打开,如果打开关闭表单?

    如何检查表单是否打开以及是否打开以关闭表单 我尝试了以下操作 测试了一些代码 但它一直说表单未打开 即使我知道它是 foreach Form a in Application OpenForms if a is YouLikeHits Se
  • 必须采用“app_label.ModelName”形式。" % model ValueError: 无效的模型引用

    When I python3 manage py makemigrations 我收到以下错误 File Library Frameworks Python framework Versions 3 5 lib python3 5 site
  • ASP.Net MVC:dbml 文件的最佳实践

    这可能只是一个是或否类型的问题 但无论如何 从我见过的使用 mvc 的所有 以及大多数 示例来看 创建 dbml 文件的方法似乎只是将数据库的整个架构放入其中 并让它自动生成所有 linq to sql 的优点 看来您只需要其中一个 因为您
  • 如何打开控制台与 Express 应用程序交互?

    如何打开控制台与我的 Express 应用程序交互 我正在尝试测试某些方法是否可以创建模型 我正在使用 SequelizeJS 但这对于这个问题的答案应该不重要 我已经习惯了 Rails 我可以做的事情 heroku run rails c
  • 无法删除 webpack 捆绑 js 文件中的注释

    我一直在尝试删除 webpack 捆绑的 js 文件中的注释 我已经尝试了几种方法 但它仍然不起作用 我收到这样的评论 n Copyright 2013 present Facebook Inc n All rights reserved
  • MessageDialog ShowAsync 在第二个对话框上引发 accessdenied 异常

    我正在尝试在 Windows 8 中实现重试 取消对话框 该对话框第一次显示正常 但单击重试并再次失败时 我在调用 ShowAsync 时遇到访问被拒绝的异常 我不知道为什么 但奇怪的是有时代码工作正常 当我设置断点时我没有得到异常 这里真
  • 使用 Code First 对 3 个表之间的多对多关系进行建模

    我有以下 3 个实体 User Account Role 关系就像 一个用户可以拥有多个帐户 一个账户可以属于多个用户 每个用户在帐户中都有一个角色 有一些预定义的角色 在枚举 Roles 中定义 我到目前为止 public class U
  • 在 Heroku 环境中 POST 请求被视为 GET

    我有一个奇怪的案例 我有一个 RoR 应用程序 它提供了我从 Java 应用程序连接到的 REST API 我正在本地开发 RoR 并将其部署在 Heroku 环境中 不管如何 我尝试从 Java APP Mozilla REST 客户端等
  • 在 Python 中浏览文件和子文件夹

    我想浏览当前文件夹及其所有子文件夹并获取所有带有 htm html 扩展名的文件 我发现可以像这样确定一个对象是目录还是文件 import os dirList os listdir current directory for dir in
  • 如何在sql server中实现多列全文搜索?

    我正在尝试对我为其创建视图的两列实施全文搜索 VendorName ProductName 我有全文索引等工作 但实际查询是导致我出现一些问题的原因 我希望用户能够使用一些标准搜索约定 AND OR NOT 以及按 进行术语分组 这很好 但