{
  "query": {
    "function_score": {
      "query": {
        "bool": {
          "minimum_should_match": 1,
          "should": [],
          "filter": {
            "bool": {
              "must": [
                {
                  "terms": {
                    "layer": [
                      "test"
                    ]
                  }
                }
              ]
            }
          }
        }
      },
      "max_boost": 20,
      "functions": [
        {
          "field_value_factor": {
            "modifier": "log1p",
            "field": "popularity",
            "missing": 1
          },
          "weight": 1
        },
        {
          "field_value_factor": {
            "modifier": "log1p",
            "field": "population",
            "missing": 1
          },
          "weight": 2
        }
      ],
      "score_mode": "avg",
      "boost_mode": "multiply"
    }
  },
  "sort": [
    "_score"
  ],
  "size": 10,
  "track_scores": true
}