Elasticsearch: возможно ли использовать восстановление в запросе bool? - PullRequest
0 голосов
/ 17 сентября 2018

Это то, что я пытался сделать, но я получаю следующую ошибку в строке 31:

[multi_match] искаженный запрос, ожидаемый [END_OBJECT], но найденный [FIELD_NAME]

Очевидно,«rescore» интерпретируется как имя поля.

Как это сделать правильно или в этом контексте невозможно использовать восстановление?

{
  "query": {
    "bool": {
      "should": [
        {
            "multi_match" : {
                "query":    "Karl-Carstens-Straße",
                "fields": [ 
                  "street", 
                  "street.bigrams^2",
                  "street.exact^4"
                ],
                "type": "most_fields",
                "fuzziness": 1,
                "prefix_length": 2        
            }
        },
        {
            "multi_match" : {
                "query":    "Marketing GmbH",
                "fields": [ 
                  "name", 
                  "name.bigrams^2",
                  "name.exact^4"
                ],
                "type": "most_fields",
                "fuzziness": 1,
                "prefix_length": 2        
            },
           "rescore" : {
              "window_size" : 20,
              "query" : {
                "score_mode": "multiply",
                 "rescore_query" : {
                    "match_phrase" : {
                       "title" : {
                          "query" : "Marketing GmbH",
                          "slop" : 2
                       }
                    }
                 },
                 "query_weight" : 1,
                 "rescore_query_weight" : 1.5
              }
           }
        }          
      ],
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...