【问题标题】:Strange query from Thinking Sphinx来自 Thinking Sphinx 的奇怪查询
【发布时间】:2016-08-05 18:19:31
【问题描述】:

我一直遇到 Thinking Sphinx 的查询生成问题。我会输入一个查询,如“杰克|“豆茎”|吉尔|杰弗里”,而不是预期的快速索引循环,我得到的是慢速 SQL 查询:

SELECT table.id, table.FullName FROM table WHERE (LOWER(table.FullName) LIKE '%jack or \"the bean stalk\" or jill or jeffrey%') ORDER BY table.FullName ASC LIMIT 10

这个查询很奇怪,原因有很多。首先,不是布尔查找,而是查询的混杂版本的通配符查找。其次,当我请求其他字段按(姓氏)排序时,它正在搜索按全名排序。

我知道 Thinking Sphinx 会绕过它的索引并在对未指定的列进行排序时进入本地 SQL 查询:sortable => true,并且它会在不是字符串的列上这样做。但是这里也不是这样。

为什么要使用原生 SQL?

【问题讨论】:

    标签: ruby-on-rails thinking-sphinx


    【解决方案1】:

    我绝对确定 Thinking Sphinx 不会进行 SQL 查询。我想知道:您是否有其他 gem(在您的 Gemfile 中,或者作为其他 gem 的依赖项?)添加了可能会妨碍您的搜索功能?例如,我知道activeadmin 依赖于meta_search

    解决此问题的一种可能方法是将activeadmin(或导致此问题的任何gem)列在之前 thinking-sphinx 在您的Gemfile 中(因此,TS 在之后加载,并且插入您期望的 search 方法)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多