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)); }