protected virtual BaseQuery HandleStartsWith(StartsWithNode node, ElasticSearchQueryMapperState state)
        {
            var fieldName = GetFormattedFieldName(node);
            var valueNode = QueryHelper.GetValueNode <string>(node);

            var queryValue = ValueFormatter.FormatValueForIndexStorage(valueNode.Value);

            return(Query.Prefix(fieldName, queryValue.ToString()));
        }
        // TODO: ProcessAsVirtualField? Solr does this, but not Lucene
        protected QueryBase VisitStartsWith(StartsWithNode node, ElasticQueryMapperState state)
        {
            // TODO: Move these 3 lines to separate method for reuse?
            var fieldName = GetFormattedFieldName(node);
            var valueNode = node.GetValueNode <string>();
            var value     = ValueFormatter.FormatValueForIndexStorage(valueNode.Value, fieldName);

            return(new PrefixQuery
            {
                Field = fieldName,
                Value = value.ToStringOrEmpty(), // TODO: StartsWith can only be done on strings (?) so it should actually already always be a string
                Boost = node.Boost
            });
        }
 protected virtual QueryNode VisitStartsWith(StartsWithNode node, AzureQueryOptimizerState state)
 {
     return((QueryNode) new StartsWithNode(this.Visit(node.LeftNode, state), this.Visit(node.RightNode, state), state.Boost));
 }