我正在尝试从弹性搜索索引中获取随机文档。我尝试了这个查询,但它不起作用:
{
"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”。
答案 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
}
}
}