0

我似乎撞到了某个狮身人面像的头套。我正在为某个表编制索引,每条记录将生成 ≈ 140 个索引字段(相信我,它们都很重要)。对于其中的 27 * 3 个,产生它的子查询本身就已经相当大了。这导致向我的 development.sphinx.conf(17 行)生成一个巨大的查询。这会产生结果,我直接在数据库中对其进行了测试。但是哪个不能索引。它抱怨

“错误:索引 'vendor_song_core': sql_query_range: : 在匹配提取查询中找不到宏 '$start'。”

,但这真正意味着守护程序没有加载完整的查询。显然它太长了。我的假设对吗?如果是这样,我可以解决它吗(比如,我可以在某处更新一个神奇的 max_query_length 字段)?

4

2 回答 2

0

从 Sphinx 论坛复制的答案... http://sphinxsearch.com/forum/view.html?id=10403

将“长”查询定义移动到 mysql VIEW 中。

那么 sql_query 可以很短:)

即视图本身,包含所有列名,sql_query 可以只使用“SELECT * FROM”。同样,如果加入许多表格 - 所有表格都可以移动到视图中。

于 2012-12-13T15:46:01.270 回答
0

似乎没有真正的方法可以做到这一点。Sphinx 直接在其源代码中定义了查询大小的限制,因此这样做的唯一方法是编辑其源代码并在本地编译它,或者按照 barryhunter 所述进行,只要您可以定义这样的一个看法。有关此问题的更多详细信息,请访问 barryhunter 提供的链接。

于 2013-01-17T13:54:47.850 回答