mapping是这样的
搜索条件:
这个搜索是搜索指定时间内的文章,并且根据文章评论数量的最小值进行asc排序,那搜素结果中除了返回_source,可以把最小的这个评论数量也一块返回吗
{
"mappings": {
"blogpost": {
"properties": {
"comments": {
"type": "nested",
"properties": {
"name": { "type": "string" },
"comment": { "type": "string" },
"age": { "type": "short" },
"stars": { "type": "short" },
"date": { "type": "date" }
}
}
}
}
}
}
搜索条件:
{
"query": {
"nested": {
"path": "comments",
"filter": {
"range": {
"comments.date": {
"gte": "2014-10-01",
"lt": "2014-11-01"
}
}
}
}
},
"sort": {
"comments.stars": {
"order": "asc",
"mode": "min",
"nested_path": "comments",
"nested_filter": {
"range": {
"comments.date": {
"gte": "2014-10-01",
"lt": "2014-11-01"
}
}
}
}
}
}
这个搜索是搜索指定时间内的文章,并且根据文章评论数量的最小值进行asc排序,那搜素结果中除了返回_source,可以把最小的这个评论数量也一块返回吗
1 个回复
rochy - rochy_he
赞同来自:
楼主应该是希望, 最后的得分是 _score 和 评论数量两者共同作用的结果吧
这个可以使用 function_score_query 来实现,具体可参考案例:
官方文档:https://www.elastic.co/guide/e ... .html