问题表述:
搜索电商商品,后台运营将商品标志为是否置顶,
如果这个商品被标志为置顶商品(is_ontop),在查询的时候,
使其排在最前面.同时先按照销量排序,
如何销量相同再按照商品上架时间来编写怎么编写dsl语句
GET index/_search
{
"from": 0,
"size": 0,
"query": {
"function_score": {
"query": {
"bool": {
"should": [
{
"constant_score": {
"filter": {
"match": {
"sk": {
"query": "耐克"
}
}
}
}
}
]
}
}
}
},
"sort": [
{
"saleCount": {
"order": "desc"
}
},
{
"saleTime": {
"order": "desc"
}
}
]
}
搜索电商商品,后台运营将商品标志为是否置顶,
如果这个商品被标志为置顶商品(is_ontop),在查询的时候,
使其排在最前面.同时先按照销量排序,
如何销量相同再按照商品上架时间来编写怎么编写dsl语句
GET index/_search
{
"from": 0,
"size": 0,
"query": {
"function_score": {
"query": {
"bool": {
"should": [
{
"constant_score": {
"filter": {
"match": {
"sk": {
"query": "耐克"
}
}
}
}
}
]
}
}
}
},
"sort": [
{
"saleCount": {
"order": "desc"
}
},
{
"saleTime": {
"order": "desc"
}
}
]
}
3 个回复
FFFrp
赞同来自:
envy666
赞同来自:
森 - Elasticsearch,php
赞同来自:
sort排序中,排在前面的优先级高,后面的优先级低,当前一个的值相同时,才会根据后一个排序。 is_ontop 排第一位,优先排置顶的,当is_ontop 相同时,才会根据saleCount降序,以此类推。