I have constructed a pretty default field_value_factor function_score query in the java api (6.5):
return new FunctionScoreQueryBuilder.FilterFunctionBuilder(
                fieldValueFactorFunction("fieldname")
                .factor(1f)
                .missing(10.0)
                .modifier(FieldValueFactorFunction.Modifier.LOG)
        );
In the logs I checked the actual query that is constructed and I noticed it included a "match_all" filter-query:
"functions":[  
        {  
          "filter":{  
            "match_all":{  
              "boost":1.0
            }
          },
          "field_value_factor":{  
            "field":"click_back",
            "factor":1.0,
            "missing":10.0,
            "modifier":"log"
          }
        }
      ]
Some questions:
- Is this how a default field_value_factor is constructed anyway in elasticsearch, or is this default implementation part of the java api?
 - In terms of the "missing" parameter, what would be the difference between using the "missing" parameter and specifying a "filter" that checks if the field exists?
 - (dependent on previous question) If there is an exists-filter present; are the scores of the documents that don't have this field influenced in any way? or can I assume that these docs 'fall through' the filters without the score being modified?