private Item buildIn(OperatorNode<ExpressionOperator> ast) {
        String field = getIndex(ast.getArgument(0));
        var index = indexFactsSession.getIndex(field);
        boolean stringField = index.isString();
        if (!index.isInteger() && !stringField)
            throw new IllegalArgumentException("The in operator is only supported for integer and string fields. The field " +
                    field + " is not of these types");
        if (index.isInteger() && stringField) {
            throw new IllegalArgumentException("The in operator is not supported for fieldsets with a mix of integer and string fields. The fieldset " +
                        field + " has both");
        }
        Item item = null;
        if (stringField) {
            item = fillStringIn(ast, ast.getArgument(1), new StringInItem(field));
        } else {
            item = fillNumericIn(ast, ast.getArgument(1), new NumericInItem(field));
        }
        return item;
    }
The YQL query language.

This class <em>must</em> be kept in lockstep with {@link VespaSerializer}.
Adding anything here will usually require a corresponding addition in
VespaSerializer.

@author Steinar Knutsen
@author Stian Kristoffersen
@author Simon Thoresen Hult
container-search/src/main/java/com/yahoo/search/yql/YqlParser.java