gpt4 book ai didi

tsql - FREETEXTTABLE 的等级始终为 0

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

我正在使用 SQLServer 2008,如果我执行以下查询:

SELECT 
*
FROM
FREETEXTTABLE(SomeTable, Name, 'a name that I know exists')

我得到了我期望的行,但排名始终为 0。

正在寻找此问题的解决方案, I found this question在 Microsoft ASP.NET 论坛上,如果我添加:
ALTER FULLTEXT CATALOG MyCatalog REBUILD

我开始获得排名 - 但只是暂时的。

我不想在每次搜索时都重建我的目录,尤其是当我的数据库中有很多数据并且如果我在查询之前直接将它添加到我的 Sproc 时,我的查询无论如何都不会返回任何结果,大概是因为目录已完成重建。似乎还有其他人有这个和类似的问题,但我一直无法找到解决方案。有任何想法吗?

最佳答案

我遇到了同样的问题,currently accepted answer对我来说不是解决方案。

是的,排名是按照this answer进行的,但是自从上次目录重建以来已经有一段时间了,这绝不是导致结果不一致的原因。重建后排名不应发生显着变化,甚至在重建后几分钟内不会发生显着变化......

对我来说,freetexttable 中有一个错误排行。 (不影响containstable排名的Bug:我自己用自己的buggy目录查过,也是写在this Microsoft forum post上的。)

来自 this other Microsoft forum post似乎这个错误只发生在只有很少行索引的目录中。将数据添加到目录会导致错误消失。

所以这是我的答案,取自 Pavel Valenta on yet another Microsoft forum post :

如果您的真实目录索引的行不会超过数百行,请向目录添加一些虚拟表,以便索引更多行。

由于查询的构建方式,这不会污染您的结果。是的,这似乎是一个很奇怪的修复。但那是唯一为我解决了麻烦的人。

最后一个注意事项:我在 sql 2005 sp4 上遇到了这个问题,没有用 2008 测试过。(问题是针对 2008 的。)

关于tsql - FREETEXTTABLE 的等级始终为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3097166/

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