我一直在思考Sphinx的查询生成方面有问题。我会输入一个查询,例如‘’杰克#“豆秆”\\ jill \ jeffrey",而不是预期的快速索引循环,我得到的是缓慢的SQL查询:
选择table.id,table.FullName从
table,其中(较低的( table.FullName ),如'%jack或\‘豆茎\’或jill或jeffrey%')由table.FullName ASC限制10
这个查询很奇怪,原因有很多。首先,我得到的不是布尔查找,而是查询的一个混合版本的通配符查找。其次,它是由FullName排序的搜索,当我请求其他字段按(LastName)排序时。
我知道,当对未指定的列进行排序时,Thinking Sphinx将绕过它的索引,进入本机SQL查询:可排序的=> true,并且它将在非字符串的列上这样做。然而,这里的情况也是如此。
为什么它会掉到本机SQL中?
发布于 2016-08-06 17:25:59
我绝对相信Thinking Sphinx并不是在进行SQL查询。我想知道:您是否有其他宝石(在您的Gemfile中,或者作为其他宝石的依赖项?)增加搜索功能,这可能会妨碍吗?例如,我知道activeadmin依赖于meta_search。
解决这一问题的一种可能方法是在Gemfile中的activeadmin (或任何导致此问题的gem )前面列出thinking-sphinx (因此,TS随后加载,并插入您所期望的search方法)。
https://stackoverflow.com/questions/38795585
复制相似问题