protected override AbstractSolrQuery Visit(QueryNode node, SolrQueryMapperState state) { if (node.NodeType == QueryNodeType.Custom) { if (node is WithinRadiusNode) { return(VisitWithinRadius((WithinRadiusNode)node, state)); } } return(base.Visit(node, state)); }
protected override AbstractSolrQuery Visit(QueryNode node, SolrQueryMapperState state) { if (node.NodeType == QueryNodeType.Custom) { if (node is WithinRadiusNode) { return VisitWithinRadius((WithinRadiusNode)node, state); } } return base.Visit(node, state); }
protected override AbstractSolrQuery Visit(QueryNode node, SolrQueryMapperState state) { if (node.NodeType == QueryNodeType.Custom) { if (node is InsidePolygonNode) { return(this.VisitInsidePolygon((InsidePolygonNode)node, state)); } } return(base.Visit(node, state)); }
protected virtual AbstractSolrQuery VisitInsidePolygon(InsidePolygonNode node, SolrQueryMapperState state) { AbstractSolrQuery abstractSolrQuery = new SolrQueryByField(node.Field, $"Intersects({node.Coordinate.Latitude} {node.Coordinate.Longitude})"); if (!abstractSolrQuery) { return(abstractSolrQuery & this.Visit(node.SourceNode, state)); } return(abstractSolrQuery); }