elasticsearch,Sorting,Random,Syntax,elasticsearch" /> elasticsearch,Sorting,Random,Syntax,elasticsearch" />

Sorting 带有按脚本排序的Elasticsearch查询[语法]

Sorting 带有按脚本排序的Elasticsearch查询[语法],sorting,random,syntax,elasticsearch,Sorting,Random,Syntax,elasticsearch,我正在尝试使用随机脚本对查询进行排序 我很难验证和运行我的查询,因为它总是返回错误 我正在运行的查询是: { "sort": { "_script": { "script": "(doc['_id'].value + salt).hashCode()", "type": "string", "params": { "salt": "some_random_string" }, "order": "asc"

我正在尝试使用随机脚本对查询进行排序

我很难验证和运行我的查询,因为它总是返回错误

我正在运行的查询是:

{
  "sort": {
    "_script": {
      "script": "(doc['_id'].value + salt).hashCode()",
      "type": "string",
      "params": {
        "salt": "some_random_string"
      },
      "order": "asc"
    }
  },
  "query": {
    "filtered": {
      "filter": {
        "and": [
          {
            "exists": {
              "field": "location"
            }
          },
          {
            "terms": {
              "streamIds": [
                796
              ]
            }
          }
        ]
      }
    }
  }
}
没有排序的查询可以工作并返回结果

我做错了什么


我尝试过跟踪这些查询,但没有任何效果。

发现Elasticsearch禁用了1.4.3中的脚本,这就是它不起作用的原因

有效的代码:

{
   "query": {
      "function_score": {
         "query": {
            "filtered": {
               "filter": {
                  "and": [
                     {
                        "exists": {
                           "field": "location"
                        }
                     },
                     {
                        "terms": {
                           "streamIds": [
                              796
                           ]
                        }
                     }
                  ]
               }
            }
         },
         "random_score": {}
      }
   }
}