gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:02:54 25 4
gpt4 key购买 nike

我正在尝试对我为其创建 View 的两列实现全文搜索:供应商名称、产品名称。我有全文索引等工作,但实际查询是什么给我带来了一些问题。

我希望用户能够使用一些标准的搜索约定,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")

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

我想要的是它在搜索词在两者之间是否有效时返回,以便它将所有名为 apple 的供应商与产品名称 itunes 匹配。

我应该在 View 中创建一个单独的字段来连接 Vendor 和 Product 字段并对该新字段执行第一个查询,还是我遗漏了什么?

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

最佳答案

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

但是,这被认为是 bug .

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

关于sql-server - 你如何在sql server中实现多列的全文搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com