gpt4 book ai didi

mysql - Sphinx 获得数百万结果

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:17 24 4
gpt4 key购买 nike

我使用 MySQL + Sphinx 来存储数百万行数据。我们有网站可以查看我们数据库中的所有信息。

例如,电影标题(100,000,000 行)。我需要在我们的网站上查看所有这些内容,每页 100 个标题。另外,我需要按 Actor 受欢迎程度排序查看它们。

对于前 10 页,一切都很好。但在那之后我到达了max_matches限制。增加此限制将强制 sphinx 使用更多 CPU/RAM。

此外,我什至无法将 max_matches 设置为 20,000,000

WARNING: max_matches=20000000 out of bounds; using default 1000

我可以使用 MySQL 来执行这样的查询:

SELECT * FROM titles WHERE tid >= $start AND tid <= $end

使用 tid 索引。但我无法按 tid 对其进行排序。我需要根据其他表中的信息对我的标题进行排序。

访问数百万行、排序并快速执行的最佳方法是什么。请帮忙。

更新:来自 sphinx 来源:/src/searchd.cpp

if ( iMax<0 || iMax>10000000 )
{
sphWarning ( "max_matches=%d out of bounds; using default 1000", iMax );
} else
{
g_iMaxMatches = iMax;
}

10000000 是一个限制吗?我怎样才能获得更多的补偿?

最佳答案

如果您的排序顺序是基于一个属性( Actor 受欢迎程度)——而不是斯芬克斯计算的权重——那么可以只使用游标。

因为可以按这个属性过滤。

http://sphinxsearch.com/forum/search.html?q=cursors&f=1

我确实想知道,如果你真的需要它。每页 100 个项目,max_matches 为 1M,意味着 10,000 页的结果。您的访问者真的阅读了 10,000 页结果吗?

关于mysql - Sphinx 获得数百万结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170509/

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