elasticsearch—是否可以只显示排序值,而不显示elasticsearch中的其他点击内容?

tcbh2hod  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(2)|浏览(327)

我使用以下查询对索引文档中名为“age”的字段进行排序:

{
    "query": {
        "match_all": {}
    },
    "sort": {
        "_script": {
            "script": "doc[\"age\"].value",
            "lang": "groovy",
            "type": "number",
            "order": "asc"
        }
    }
}

以下是回应:

{
    "hits": {
        "total": 3,
        "max_score": null,
        "hits": [
            {
                "_index": "monthdata",
                "_type": "monthdata",
                "_id": "121224354",
                "_score": null,
                "_source": {
                    "profile": {
                        "name": "Merlin",
                        "age": 25,
                        "sex": "female"
                    }
                },
                "sort": [
                    25
                ]
            }
        ]
    }
}

我需要完成的是,我不想用它来显示文档数据,而只是显示排序数组。
我试过添加 "size" : 0 我的查询,但它使所有的点击都消失了。
如何才能只显示排序数组?

epggiuax

epggiuax1#

我觉得你做不到。排序的目的是对文档进行排序,如果您取出文档,您会得到一个值列表吗?没有道理。
您可以做什么来减轻结果是指定 fields 你想看看。如果你没有具体说明 fields ,将不返回任何值,但排序值将:

{
  "query": {
    "match_all": {}
  },
  "sort": {
    "_script": {
      "script": "doc[\"age\"].value",
      "lang": "groovy",
      "type": "number",
      "order": "asc"
    }
  },
  "fields": []
}

那会给你

{
    "hits": {
        "total": 3,
        "max_score": null,
        "hits": [
            {
                "_index": "monthdata",
                "_type": "monthdata",
                "_id": "121224354",
                "_score": null,
                "sort": [
                    25
                ]
            },
            {
                "_index": "monthdata",
                "_type": "monthdata",
                "_id": "121224352",
                "_score": null,
                "sort": [
                    32
                ]
            },
            {
                "_index": "monthdata",
                "_type": "monthdata",
                "_id": "121224355",
                "_score": null,
                "sort": [
                    35
                ]
            }
        ]
    }
}
jogvjijk

jogvjijk2#

在这种情况下,将“size”设置为零是行不通的,因为size指定要获取并显示在结果中的文档数。另一种方法是在脚本中设置fields属性,如下所示:

{
    "query": {
        "match_all": {}
    },
    "sort": {
        "_script": {
            "script": "doc[\"age\"].value",
            "lang": "groovy",
            "type": "number",
            "order": "asc"
        }
    },
    "fields": []
}

这会给你想要的结果。

相关问题