【问题标题】:Elastic search random script query not getting back any results?弹性搜索随机脚本查询没有得到任何结果?
【发布时间】:2017-11-05 10:15:24
【问题描述】:

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

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

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

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

使用“排序”脚本的第一个查询是否有任何错误?如何调试此类查询?

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

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    在 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
          }
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-10-15
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 2018-12-13
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多