gpt4 book ai didi

sql - URL字段的全文搜索sql server

转载 作者:行者123 更新时间:2023-12-02 11:03:36 26 4
gpt4 key购买 nike

目标:返回以 "https://mywebsite.domain.com/as/product/4/"开头的所有 URL

给定:

  • 在 URL 字段中应用全文搜索。
  • SQL Server 版本:2014 年。
  • 20+ 百万行

网址

https://mywebsite.domain.com/as/product/1/production
https://mywebsite.domain.com/as/product/2/items
https://mywebsite.domain.com/as/product/1/affordability
https://mywebsite.domain.com/as/product/3/summary
https://mywebsite.domain.com/as/product/4/schedule
https://mywebsite.domain.com/as/product/4/resources/summary

查询 1:

WHERE CONTAINS (URL, 'https://mywebsite.domain.com/as/product/4')

结果:

All records returned

查询 2(在阅读 MSDN article 后添加“*”)

WHERE CONTAINS (URL, '"https://mywebsite.domain.com/as/product/4*"')

结果:

No records returned

任何帮助将不胜感激。

最佳答案

您可以使用CONTAINSLIKE仅匹配开始的子查询:

SELECT * 
FROM (
SELECT *
FROM myTable WHERE CONTAINS (URL, '"https://mywebsite.domain.com/as/product/4/"')
) AS S1
WHERE S1.URL LIKE 'https://mywebsite.domain.com/as/product/4/%'

这样, LIKE运算符查询将针对较小的记录集运行

EDIT1:(如果 WHERE CONTAINS (URL, '"https://mywebsite.domain.com/as/product/4/"') 未过滤值)

经过多次搜索。问题出在 / 。正斜杠不包含在干扰词文件中,但我猜它被归类为分隔符或分词器,因此不可搜索。

阅读这些主题:

编辑2:

我找到了一个建议的解决方案

/被视为英语断词器您可以从注册表更改它

  • 导航至注册表值 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRoot>\MSSearch\Language\engHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRoot>\MSSearch\Language\enu
  • WBreakerClass 的明确值。

Sql 服务器考虑https://mywebsite.domain.com/as/product/4作为一个词。

注意:在上面的两条路径中,我假设您使用英语作为分词器。

阅读有关分词器的更多信息 MSDN Topic

关于sql - URL字段的全文搜索sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40667238/

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