如何在 searchkick 中使用 "where not" 子句
How to use a "where not" clause with searchkick
我正在使用 Searchkick 和 Elasticsearch 来获取带有搜索词的产品。
我正在尝试向其中添加一个 WHERE NOT
子句,这样它就不会 return 任何带有 regular_price
为空的产品。
@products = Product.search(
search,
where: {
regular_price: {
not: "null" # I have also tried nil, both won't work
}
},
page: params[:page],
per_page: per_page,
)
搜索忽略了我的 WHERE NOT
子句。
如果能提供一些调试技巧,我将不胜感激。
编辑:
所以我尝试使用以下内容,但现在它只是 return 所有适合搜索的产品。忽略搜索的 WHERE NOT
部分。
@products = Product.search(
search,
where: {
regular_price: {
_not: "null"
}
},
page: params[:page],
per_page: per_page,
)
UPDATE:
我还没有找到解决这个问题的方法,我继续使用不同的方法。通过过滤掉 regular_price
为 0.
的产品
还没有找到答案。因为我想用这个查询过滤掉的产品不多,所以我只是在渲染时过滤掉它们。
@products = Product.search(
search,
where: {
regular_price: {
_not: nil
}
},
page: params[:page],
per_page: per_page,
)
只需将 "null"
替换为 nil
即可过滤掉没有 regular_price 的产品。
我正在使用 Searchkick 和 Elasticsearch 来获取带有搜索词的产品。
我正在尝试向其中添加一个 WHERE NOT
子句,这样它就不会 return 任何带有 regular_price
为空的产品。
@products = Product.search(
search,
where: {
regular_price: {
not: "null" # I have also tried nil, both won't work
}
},
page: params[:page],
per_page: per_page,
)
搜索忽略了我的 WHERE NOT
子句。
如果能提供一些调试技巧,我将不胜感激。
编辑:
所以我尝试使用以下内容,但现在它只是 return 所有适合搜索的产品。忽略搜索的 WHERE NOT
部分。
@products = Product.search(
search,
where: {
regular_price: {
_not: "null"
}
},
page: params[:page],
per_page: per_page,
)
UPDATE:
我还没有找到解决这个问题的方法,我继续使用不同的方法。通过过滤掉 regular_price
为 0.
还没有找到答案。因为我想用这个查询过滤掉的产品不多,所以我只是在渲染时过滤掉它们。
@products = Product.search(
search,
where: {
regular_price: {
_not: nil
}
},
page: params[:page],
per_page: per_page,
)
只需将 "null"
替换为 nil
即可过滤掉没有 regular_price 的产品。