弹性搜索随机脚本查询没有找回任何结果?

时间:2017-11-05 10:15:25

标签: elasticsearch

我正在尝试从弹性搜索索引中获取随机文档。我尝试了这个查询,但它不起作用:

{
  "query" : { "query_string" : {"query" : "*:*"} },
  "sort" : {
    "_script" : { 
        "script" : "(doc['_id'].value + salt).hashCode()",
        "type" : "number",
        "params" : {
            "salt" : "32423"
        },
        "order" : "asc"
    }
  }
}

如果我从中删除“sort”并运行以下查询,它将返回文档:

{
  "query" : { "query_string" : {"query" : "*:*"} }
}

使用“sort”脚本在第一个查询中是否有任何错误?我该如何调试此类查询?

我们使用最新的弹性搜索版本,“_ id”是字符串,即“X2345”。

1 个答案:

答案 0 :(得分:0)

对于Elasticsearch 6.x尝试此操作。

{  
   "query":{  
      "query_string":{  
         "query":"*:*"
      },
      "bool":{  
         "filter":[  
            {  
               "_script":{  
                  "script":"(doc['_id'].value + salt).hashCode()",
                  "type":"number",
                  "params":{  
                     "salt":"32423"
                  },
                  "order":"asc"
               }
            }
         ],
         "adjust_pure_negative":true,
         "boost":1.0
      }
   }
}