Sphinx 正确的语法与思考狮身人面像

Sphinx 正确的语法与思考狮身人面像,sphinx,thinking-sphinx,Sphinx,Thinking Sphinx,我有一个查询,我想对thinking sphinx运行相同的查询,但是我在having子句方面遇到了问题。相关代码如下所示: #technology_index.rb has taggings.tag_id, :as => :tag_id has id, :as => :technology_id #technology.rb search(params[:query], with: { tag_id: params[:filter].values.fl

我有一个查询,我想对thinking sphinx运行相同的查询,但是我在
having
子句方面遇到了问题。相关代码如下所示:

#technology_index.rb
  has taggings.tag_id, :as => :tag_id
  has id, :as => :technology_id

#technology.rb
    search(params[:query],
      with: { tag_id: params[:filter].values.flatten },
      group_by: :technology_id,
      having: "COUNT(`technology_id`)=#{params[:filter].size}"
    )
这会引发以下错误(错误消息中的新行是我的):

问题在于
具有:
子句,因为如果我删除它,至少查询可以工作。
假设从2.2.1测试版开始(使用2.2.6),(使用3.1.2)。我在文档中找不到任何信息,但如果我尝试类似于
的方法,让“COUNT(*)>1”
起作用,我想,我只是错误地调用了它。使用
having:
和TS的正确方法是什么?

sphinx似乎仍然不支持类似
having:“COUNT('technology_id')={params[:filter].size}“

无论如何,我的查询使用了
having:“COUNT(*)={params[:filter].size}
作为我使用
技术进行分组时,id

只是为了澄清sphinx不支持的计数(列)-实际上它实际上没有空值的概念。但是COUNT(*)可以工作。(即,而不是有问题)
sphinxql: syntax error, unexpected IDENT, expecting '*' near '`technology_id`)=1 LIMIT 0, 20; 
SHOW META' - SELECT *, groupby() AS sphinx_internal_group, id AS sphinx_document_id, 
count(DISTINCT sphinx_document_id) AS sphinx_internal_count 
FROM `technology_core` WHERE MATCH('fibrosis') AND `tag_id` IN (2) 
AND `sphinx_deleted` = 0 GROUP BY `technology_id` HAVING COUNT(`technology_id`)=1 
LIMIT 0, 20; SHOW META