gpt4 book ai didi

sql - 在 SQL Server 中使用全文搜索的延迟

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

我决定将搜索从使用 LIKE '%' + @searchTerm + '%' 更改使用 FULLTEXT 索引。我正在使用 SQL Server 2005。

我创建了一个目录,如下所示:

CREATE FULLTEXT CATALOG CatalogName AS DEFAULT

我已经创建了索引,如下所示:
CREATE FULLTEXT INDEX ON Table (col1, col2) KEY INDEX TablePK WITH CHANGE_TRACKING AUTO

然后我像这样使用它:
SELECT col1, col2
FROM Table t
INNER JOIN FREETEXTTABLE(Table, *, @SearchTerm) s ON s.[Key] = t.Id
ORDER BY s.[Rank] DESC

它返回正确的结果,但如果有一段时间没有运行搜索,则运行搜索大约需要 30 秒。运行一次后,所有进一步的搜索都是即时的。如果我不理会它并在一个小时后回来,第一次搜索又会变慢。即使在此期间表没有更新,它似乎也会发生。

我已经在两个完全不同的数据库,完全不同的服务器上尝试过这个,并且行为是相同的。在其中一个数据库中,被索引的表非常小(50 行),而在另一个数据库中则稍大一些(1000 行)。

谁能帮我找出问题所在以及如何解决?我唯一的选择是要么完全放弃 FULLTEXT,要么提供服务以每 n 分钟运行一次搜索查询!

最佳答案

默认情况下,SQL Server在一段时间不活动后卸载分词器(300 秒,AFAIR)。

重新加载它需要检查签名,这需要向证书颁发者发出 Internet 请求。

请在开发服务器上运行:

EXEC    sp_fulltext_service
@action = 'verify_signature',
@value = 0

看看它是否有帮助。

更新:

http://support.microsoft.com/kb/915850/en-us

关于sql - 在 SQL Server 中使用全文搜索的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693294/

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