A query that executes a query string against a specific field. It is a simplified version of query_string query (by setting the default_field to the field this query executed against). In its simplest form:

        {
            "field" : {
                "name.first" : "+something -else"
            }
        }
        Most of the query_string parameters are allowed with the field query as well, in such a case, the query should be formatted as follows:

        {
            "field" : {
                "name.first" : {
                    "query" : "+something -else",
                    "boost" : 2.0,
                    "enable_position_increments": false
                }
            }
        }

def field(cls, field, query, boost=None, enable_position_increments=None):
        '''
        A query that executes a query string against a specific field. It is a simplified version of query_string query (by setting the default_field to the field this query executed against). In its simplest form:

        {
            "field" : {
                "name.first" : "+something -else"
            }
        }
        Most of the query_string parameters are allowed with the field query as well, in such a case, the query should be formatted as follows:

        {
            "field" : {
                "name.first" : {
                    "query" : "+something -else",
                    "boost" : 2.0,
                    "enable_position_increments": false
                }
            }
        }
        '''
        instance = cls(field={field: {'query': query}})
        if boost is not None:
            instance['field']['boost'] = boost
        if enable_position_increments is not None:
            instance['field']['enable_position_increments'] = enable_position_increments
        return instance