Default field_value_factor query construction

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:

  1. Is this how a default field_value_factor is constructed anyway in elasticsearch, or is this default implementation part of the java api?
  2. 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?
  3. (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?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.