php - 需要将缺货项目移动到弹性搜索中的结果集末尾
问题描述
我有以下搜索查询
{
"index":"index",
"body":{
"sort":{
"sort_order":[
{
"order":"asc",
"missing":"_last"
}
]
},
"query":{
....
....
}
}
}
这将返回搜索查询的产品列表,并根据名为 的字段对结果进行排序sort_order
。如果该sort_order
字段为空,它会将这些项目推送到结果集的末尾。
样本产品记录
{
"id": 1,
"name": "product A",
"variants": [
{
"variant_id": 1,
"stock": 114,
"published": 1,
}
],
"sort_order": 1
},
在这里您可以看到stock
值为 114 的字段,它描述了可用商品的数量(如果库存为零,我们在前端将其显示为“缺货”),一个产品也可以有多个变体。
我想要达到什么目的?
我需要将库存等于的项目推送到0
结果集的末尾,就像sort
参数已经对sort_order
字段所做的那样。(不首选基于stock
字段的排序,因为它也会弄乱其他相关项目。)我怎样才能做到这一点?
我想到的一件事是以某种方式将_score
零库存的项目设置null
为结果集的末尾。但也不知道如何实现这一目标。任何解决它的提示,非常感谢。
解决方案
推荐阅读
- c++ - 没有默认构造函数的值初始化
- c++ - 具有指针类型的 C++ 模板继承
- google-chrome-extension - 如何获取已发布的 chrome 扩展的链接?
- java - 移动到下一个轨道的问题
- scheme - 在 GIMP 中导入/导出的更快方法?
- html - 使用 HTML 或 CSS 裁剪
- javascript - 根据按钮名称显示模式
- django - Django Rest Framework - 序列化程序 update_or_create 给出 IntegrityError: Unique Constraint Failed
- spring-cloud-netflix - 我们可以使用带有 Spring boot 2.5.2 的 Ribbon 实现客户端负载平衡吗?
- java - JMETER - 获取响应数据上的数据并成为 API 上的变量