Class PointType

    • Constructor Detail

      • PointType

        public PointType()
    • Method Detail

      • init

        protected void init​(IndexSchema schema,
                            Map<String,​String> args)
        Description copied from class: FieldType
        subclasses should initialize themselves with the args provided and remove valid arguments. leftover arguments will cause an exception. Common boolean properties have already been handled.
        Overrides:
        init in class AbstractSubTypeFieldType
      • getValueSource

        public org.apache.lucene.queries.function.ValueSource getValueSource​(SchemaField field,
                                                                             QParser parser)
        Description copied from class: FieldType
        called to get the default value source (normally, from the Lucene FieldCache.)
        Overrides:
        getValueSource in class FieldType
      • getUninversionType

        public UninvertingReader.Type getUninversionType​(SchemaField sf)
        Description copied from class: FieldType

        If DocValues is not enabled for a field, but it's indexed, docvalues can be constructed on the fly (uninverted, aka fieldcache) on the first request to sort, facet, etc. This specifies the structure to use.

        This method will not be used if the field is (effectively) uninvertible="false"

        Specified by:
        getUninversionType in class FieldType
        Parameters:
        sf - field instance
        Returns:
        type to uninvert, or null (to disallow uninversion for the field)
        See Also:
        SchemaField.isUninvertible()
      • getRangeQuery

        public org.apache.lucene.search.Query getRangeQuery​(QParser parser,
                                                            SchemaField field,
                                                            String part1,
                                                            String part2,
                                                            boolean minInclusive,
                                                            boolean maxInclusive)
        Description copied from class: FieldType
        Returns a Query instance for doing range searches on this field type. SolrQueryParser currently passes part1 and part2 as null if they are '*' respectively. minInclusive and maxInclusive are both true currently by SolrQueryParser but that may change in the future. Also, other QueryParser implementations may have different semantics.

        Sub-classes should override this method to provide their own range query implementation. They should strive to handle nulls in part1 and/or part2 as well as unequal minInclusive and maxInclusive parameters gracefully.

        Overrides:
        getRangeQuery in class FieldType
        Parameters:
        parser - the QParser calling the method
        field - the schema field
        part1 - the lower boundary of the range, nulls are allowed.
        part2 - the upper boundary of the range, nulls are allowed
        minInclusive - whether the minimum of the range is inclusive or not
        maxInclusive - whether the maximum of the range is inclusive or not
        Returns:
        a Query instance to perform range search according to given parameters
      • getFieldQuery

        public org.apache.lucene.search.Query getFieldQuery​(QParser parser,
                                                            SchemaField field,
                                                            String externalVal)
        Description copied from class: AbstractSubTypeFieldType
        Throws UnsupportedOperationException()
        Overrides:
        getFieldQuery in class AbstractSubTypeFieldType
        Parameters:
        parser - The QParser calling the method
        field - The SchemaField of the field to search
        externalVal - The String representation of the value to search
        Returns:
        The Query instance. This implementation returns a TermQuery but overriding queries may not
      • createSpatialQuery

        public org.apache.lucene.search.Query createSpatialQuery​(QParser parser,
                                                                 SpatialOptions options)
        Calculates the range and creates a RangeQuery (bounding box) wrapped in a BooleanQuery (unless the dimension is 1, one range for every dimension, AND'd together by a Boolean
        Specified by:
        createSpatialQuery in interface SpatialQueryable
        Parameters:
        parser - The parser
        options - The SpatialOptions for this filter.
        Returns:
        The Query representing the bounding box around the point.
      • vectorBoxCorner

        public static double[] vectorBoxCorner​(double[] center,
                                               double[] result,
                                               double distance,
                                               boolean upperRight)
        Return the coordinates of a vector that is the corner of a box (upper right or lower left), assuming a Rectangular coordinate system. Note, this does not apply for points on a sphere or ellipse (although it could be used as an approximation).
        Parameters:
        center - The center point
        result - Holds the result, potentially resizing if needed.
        distance - The d from the center to the corner
        upperRight - If true, return the coords for the upper right corner, else return the lower left.
        Returns:
        The point, either the upperLeft or the lower right
      • parseCommaSeparatedList

        public static String[] parseCommaSeparatedList​(String externalVal,
                                                       int dimension)
                                                throws SolrException
        Given a string containing dimension values encoded in it, separated by commas, return a String array of length dimension containing the values.
        Parameters:
        externalVal - The value to parse
        dimension - The expected number of values for the point
        Returns:
        An array of the values that make up the point (aka vector)
        Throws:
        SolrException - if the dimension specified does not match the number found