gpt4 book ai didi

sql-server - SQL 包含确切的短语

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

我尝试在 SQL Server 2014 上使用“CONTAINS()”实现搜索机制。

我读过这里https://technet.microsoft.com/en-us/library/ms142538%28v=sql.105%29.aspx在《SQL Server 2008 中的 Pro Full-Text Search》一书中,我需要使用双引号来搜索确切的短语。

但是等式如果我使用这个 CONTAINS(*, '"test"') 我也会收到包含“numerictest”等单词的结果。如果我尝试 CONTAINS(*, '"test "') 它是相同的。我注意到,结果较少,就像我使用 CONTAINS(*, '*test*') 搜索前缀、后缀搜索一样,因此搜索之间肯定存在增量。

我没想到第一个语句中会出现“numerictest”。这种行为有解释吗?

最佳答案

我一直在绞尽脑汁地思考一个非常相似的问题,最近我找到了解决方案。

就我而言,我在全文字段中搜索“@username”,但使用 CONTAINS(body, "@username") 也只返回“username”。我希望它与@符号严格匹配。

我可以使用LIKE“%@username%”,但查询花了一分钟多的时间,这是 Not Acceptable ,所以我继续寻找。

在聊天室中一些人的帮助下,他们建议同时使用 CONTAINS 和 LIKE。所以:

从表 WHERE 中选择前 25 个 *

CONTAINS(body, "@username") AND body LIKE "%@username%";

这对我来说非常有效,因为 contains 会提取用户名和 @username 记录,然后 LIKE 会过滤掉带有 @ 符号的记录。现在查询需要 2-3 秒。

我知道这是一个老问题,但我在搜索中遇到了它,所以有了答案我想我会发布它。我希望这有帮助。

关于sql-server - SQL 包含确切的短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28714844/

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