按状态过滤轮胎结果



我试图通过'status_id'过滤我的轮胎搜索结果。我不想显示'status_id'为2的结果。

这是我当前的搜索代码:

query = params[:query]
page = params[:page] || 1
per_page = params[:per_page] || 5
offset = page.to_i - 1 < 0 ? 0 : (page.to_i - 1) * per_page
@results = Tire.search INDEX_NAME do
  query { string query }
  from offset
  size per_page
end

我试过使用:

filter :terms, status_id: '1'
filter :string, status_id: '1'
filter :integer, status_id: '1'

,但没有一个工作。然而,理想情况下,我想得到所有不是'2',而不仅仅是'1'的选择结果。

status_id在json中被elasticsearch正确返回。

请帮忙就太好了。

谢谢。

filter :term, :status_id => 1

应该工作。术语过滤器需要一个可能的术语数组,这就是为什么您的尝试没有成功。

如果你想使用not过滤器,比如

filter :not, {:term => {:status_id => 2}}

应该工作。

最新更新