我正在尝试通过'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'的结果。
在json中弹性搜索正确返回了status_id。
任何帮助都会很棒。
谢谢。
答案 0 :(得分:1)
filter :term, :status_id => 1
应该有效。术语过滤器需要一系列可能的术语,这就是您的尝试没有奏效的原因。
如果你想使用not过滤器,比如
filter :not, {:term => {:status_id => 2}}
应该有效。