2016-08-05 45 views
0

我一直在思考思维狮身人面像查询一代的问题。我会输入一个类似'“jack |”bean stalk“| jill | jeffrey”的查询,而不是预期的快速索引循环,我会得到缓慢的SQL查询:Thinking Sphinx的奇怪查询

SELECT table.id,table。全名FROM table WHERE (LOWER(table.FullName)LIKE '%插孔或\ “豆秆\” 或吉尔或 杰弗里%')ORDER BY table.FullName ASC LIMIT 10

该查询怪原因有很多。首先,我不使用布尔查找,而是查询错误版本的通配符。其次,它是按FullName排序的搜索,当我请求其他字段按(姓氏)排序时。

我知道思维狮身人面像将绕过其索引,并在对未指定的列进行排序时放入本机SQL查询:sortable => true,并且它将在不是字符串的列上执行此操作。然而,这里的情况也不例外。

它为什么会落入本机SQL?

回答

0

我绝对相信思维狮身人面像不是在进行SQL查询。我想知道:你是否有其他的宝石(在你的Gemfile中,或者作为其他宝石的依赖项?),添加了可能妨碍搜索功能的搜索功能?例如,我知道activeadminmeta_search有依赖。

解决此

一种可能的方式是有activeadmin(或其他宝石是造成这个问题)thinking-sphinx在你的Gemfile(上市前,因此,TS被加载后,并插入search方法,你是期待)。