【问题标题】:Is there a way i can access "Script_fields" in custom "Script Context" used for sorting有没有办法我可以在用于排序的自定义“脚本上下文”中访问“Script_fields”
【发布时间】:2020-04-22 15:17:21
【问题描述】:

在使用自定义脚本时在 Sort_context 中。根据documentation,我可以访问这些。

1) 参数(地图,只读)

2) doc(地图,只读)

3) _score(双读)

有没有办法,我可以在 algo_for_sorting 的 Sort Context 中访问查询中 Script_Field 创建的 Fields(here "kuchbhi") 的结果

例如在脚本 algo_for_sorting(用于排序的自定义无痛脚本)中我可以这样写

字段['kuchbhi'][0]

我的查询看起来像这样。

GET hockey/_search
{
  "explain": true,
  "size": 20, 
  "query": {
    "match_all": {}
  },
  "stored_fields": [
    "_source"
  ],
  "sort": {
    "_script":{
      "type" : "number",
      "script" : {
        "id": "algo_for_sorting",
        "params":{
          "query":"linkedin"
        }
      },
      "order" : "desc"
    }
  },
  "script_fields": {
    "kuchbhi": {
      "script": {
        "id": "poca",
        "params": {
          "query" : "frolik"
        }
      }
    }
  }
}

【问题讨论】:

    标签: elasticsearch elasticsearch-5


    【解决方案1】:

    不,您不能从排序脚本或查询脚本访问 script_fields

    例如,您无法从脚本 algo_for_sorting 访问 script_fields kuchbhi。您必须将 script_fields 逻辑复制到脚本 algo_for_sorting

    【讨论】:

    • 谢谢您的回答。这意味着我必须运行脚本(逻辑)两次。一次是在创建字段时,第二次是我在“algo_for_sorting”中需要它时。大概是排序脚本之前运行的原因,生成了Script_field吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 2014-05-23
    相关资源
    最近更新 更多