Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Rescore JSON查询转换为Java_Java_Json_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Json,elasticsearch" /> elasticsearch,Java,Json,elasticsearch" />

将Rescore JSON查询转换为Java

将Rescore JSON查询转换为Java,java,json,elasticsearch,Java,Json,elasticsearch,我在集群中使用elasticsearch LTR插件,很难将下面的JSON重新存储查询转换为Java代码。我似乎在elasticsearch java客户端中找不到合适的对象来执行此操作 我的问题是: "rescore": { "query": { "rescore_query": { "sltr": { "params": { "keywords": "soccer cleats"

我在集群中使用elasticsearch LTR插件,很难将下面的JSON重新存储查询转换为Java代码。我似乎在elasticsearch java客户端中找不到合适的对象来执行此操作

我的问题是:

"rescore": {
      "query": {
        "rescore_query": {
          "sltr": {
            "params": {
              "keywords": "soccer cleats"
            },
            "model": "model"
          }
        },
        "query_weight": 1,
        "rescore_query_weight": 100
      },
      "window_size": 500
    },
我尝试过使用
QueryRescorerBuilder QueryRescorerBuilder=QueryBuilders.rescoreQuery()
像构建其他查询一样,但rescoreQuery()似乎不是java客户端的一部分

我错过了什么

非常感谢。您可以使用


我认为这不是一种正确的方法,因为这是对查询进行硬编码,如果我需要更改查询中的一些值怎么办?@es enthu String customQuery=String.format(“{\'sltr\”:{\'params\”:{\'keywords\”:\%s\”}、\'model\:\%s\“}”、“足球鞋”、“模型”);是的,现在看起来好多了
String customQuery = String.format("{ \"sltr\": { \"params\": { \"keywords\": \"%s\" }, \"model\": \"%s\" } }", "soccer cleats", "model");

WrapperQueryBuilder wrapperQueryBuilder = QueryBuilders.wrapperQuery(customQuery);

QueryRescorerBuilder queryRescorerBuilder = new QueryRescorerBuilder(wrapperQueryBuilder);
queryRescorerBuilder.setQueryWeight(1);
queryRescorerBuilder.setRescoreQueryWeight(100);
queryRescorerBuilder.windowSize(500);

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchSourceBuilder.addRescorer(queryRescorerBuilder);

SearchRequest searchRequest = new SearchRequest();
searchRequest.source(searchSourceBuilder);
searchRequest.indices("MY_INDEX");

System.out.println(searchRequest.toString());
{
  "query": {
    "match_all": {
      "boost": 1.0
    }
  },
  "rescore": [
    {
      "window_size": 500,
      "query": {
        "rescore_query": {
          "wrapper": {
            "query": "eyAic2x0ciI6IHsgInBhcmFtcyI6IHsgImtleXdvcmRzIjogInNvY2NlciBjbGVhdHMiIH0sICJtb2RlbCI6ICJtb2RlbCIgfSB9"
          }
        },
        "query_weight": 1.0,
        "rescore_query_weight": 100.0,
        "score_mode": "total"
      }
    }
  ]
}