Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Sphinx:可以更新用于索引的SQL查询大小限制吗?_Ruby On Rails_Ruby_Sphinx_Thinking Sphinx - Fatal编程技术网

Ruby on rails Sphinx:可以更新用于索引的SQL查询大小限制吗?

Ruby on rails Sphinx:可以更新用于索引的SQL查询大小限制吗?,ruby-on-rails,ruby,sphinx,thinking-sphinx,Ruby On Rails,Ruby,Sphinx,Thinking Sphinx,我好像碰到了一个斯芬克斯头套。我正在索引某个表,它将生成≈ 每个记录有140个索引字段(相信我,它们都很重要)。对于其中的27*3,生成它的子查询本身已经相当大了。这将导致对我的development.sphinx.conf生成一个巨大的查询(17行)。这会产生结果,我已经在db中直接测试了它。但它不能索引。它抱怨 错误:索引“vendor\u song\u core”:在匹配获取查询中找不到sql\u query\u range::宏“$start” ,但这实际上意味着执事没有加载完整的查询。

我好像碰到了一个斯芬克斯头套。我正在索引某个表,它将生成≈ 每个记录有140个索引字段(相信我,它们都很重要)。对于其中的27*3,生成它的子查询本身已经相当大了。这将导致对我的development.sphinx.conf生成一个巨大的查询(17行)。这会产生结果,我已经在db中直接测试了它。但它不能索引。它抱怨

错误:索引“vendor\u song\u core”:在匹配获取查询中找不到sql\u query\u range::宏“$start”


,但这实际上意味着执事没有加载完整的查询。显然它太长了。我的假设正确吗?如果是这样的话,我能解决它吗(比如,一个神奇的最大查询长度字段,我可以在某处更新)?

答案是从斯芬克斯论坛复制的。。。

将“long”查询定义移动到mysql视图中

那么sql\u查询可以非常短:)

也就是说,视图本身包含所有列名,sql\u查询只需使用“选择*
从”。类似地,如果连接许多表,这些表都可以移动到视图中。

似乎没有真正的方法来实现这一点。Sphinx直接在其源代码中定义了查询大小的限制,因此,唯一的方法是编辑其源代码并在本地编译,或者按照barryhunter的说法执行,只要您能够定义这样的视图。有关此问题的更多详细信息,请访问barryhunter提供的链接

你能粘贴你的源代码和索引配置吗?这个问题(不是答案)是我在sphinx论坛上发布的。我不能把它放在一个视图中。这一切都与“排序”列有关,这些列接受特定的“定制”查询,而这些查询无法真正转换为视图。但无论如何,我已经找到了解决办法。我仍然认为sphinx应该考虑到索引查询确实有一个未声明的限制,并且应该相应地解决这个问题。