簡體   English   中英

elasticsearch 按獲取請求中的字段名稱排序不起作用

[英]elasticsearch sort by a field name in a get request not working

我正在嘗試對這樣的結果進行排序:

{
hits: {total: {value: 192, relation: "eq"}, max_score: 2.4924624,…}
hits: [
{
  _id: "6501467",
  _index: "nomenclator",
  _score: 2.4924624,
  atc: "M01AE01",
  valorUnidadEnvase: "200",
},
{
  _id: "6501467",
  _index: "nomenclator",
  _score: 2.4924624,
  atc: "M01AE01",
  valorUnidadEnvase: "20",
},
{
  _id: "6501467",
  _index: "nomenclator",
  _score: 2.4924624,
  atc: "M01AE01",
  valorUnidadEnvase: "30",
}
]
...

這只是一個簡單的例子,真正的例子有很多領域。

我想按“asc”中的“valorUnidadEnvase”排序,我正在嘗試使用獲取請求和下一個查詢:

q: atc:M01*
size: 10
sort: [{"valorUnidadEnvase":{"order":"asc"}}]

但我沒有得到排序結果

我忽略了什么或我需要對此進行排序?

在您的映射中,您需要將valorUnidadEnvase定義為Numeric 字段類型

添加帶有索引數據、映射、搜索查詢和搜索結果的工作示例

索引映射:

{
  "mappings": {
    "properties": {
      "valorUnidadEnvase": {
        "type": "integer"
      }
    }
  }
}

指數數據:

{
     "atc": "M01AE01",
  "valorUnidadEnvase": "30"
}
{
     "atc": "M01AE01",
  "valorUnidadEnvase": "200"
}
{
     "atc": "M01AE01",
  "valorUnidadEnvase": "20"
}

搜索查詢:

{
  "sort": [
    {
      "valorUnidadEnvase": {
        "order": "asc"
      }
    }
  ]
}

搜索結果:

"hits": [
  {
    "_index": "66985849",
    "_type": "_doc",
    "_id": "2",
    "_score": null,
    "_source": {
      "atc": "M01AE01",
      "valorUnidadEnvase": "20"
    },
    "sort": [
      20
    ]
  },
  {
    "_index": "66985849",
    "_type": "_doc",
    "_id": "3",
    "_score": null,
    "_source": {
      "atc": "M01AE01",
      "valorUnidadEnvase": "30"
    },
    "sort": [
      30
    ]
  },
  {
    "_index": "66985849",
    "_type": "_doc",
    "_id": "1",
    "_score": null,
    "_source": {
      "atc": "M01AE01",
      "valorUnidadEnvase": "200"
    },
    "sort": [
      200
    ]
  }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM