Class AbstractGeometryQueryBuilder<QB extends AbstractGeometryQueryBuilder<QB>>

    • Field Detail

      • DEFAULT_SHAPE_INDEX_NAME

        public static final java.lang.String DEFAULT_SHAPE_INDEX_NAME
        See Also:
        Constant Field Values
      • DEFAULT_SHAPE_FIELD_NAME

        public static final java.lang.String DEFAULT_SHAPE_FIELD_NAME
        See Also:
        Constant Field Values
      • DEFAULT_SHAPE_RELATION

        public static final ShapeRelation DEFAULT_SHAPE_RELATION
      • validContentTypes

        protected final java.util.List<java.lang.String> validContentTypes
        registry of content types this query can be used with
      • DEFAULT_IGNORE_UNMAPPED

        public static final boolean DEFAULT_IGNORE_UNMAPPED
        The default value for ignore_unmapped.
        See Also:
        Constant Field Values
      • SHAPE_FIELD

        protected static final ParseField SHAPE_FIELD
      • RELATION_FIELD

        protected static final ParseField RELATION_FIELD
      • INDEXED_SHAPE_FIELD

        protected static final ParseField INDEXED_SHAPE_FIELD
      • SHAPE_ID_FIELD

        protected static final ParseField SHAPE_ID_FIELD
      • SHAPE_TYPE_FIELD

        protected static final ParseField SHAPE_TYPE_FIELD
      • SHAPE_INDEX_FIELD

        protected static final ParseField SHAPE_INDEX_FIELD
      • SHAPE_PATH_FIELD

        protected static final ParseField SHAPE_PATH_FIELD
      • SHAPE_ROUTING_FIELD

        protected static final ParseField SHAPE_ROUTING_FIELD
      • IGNORE_UNMAPPED_FIELD

        protected static final ParseField IGNORE_UNMAPPED_FIELD
      • fieldName

        protected final java.lang.String fieldName
      • supplier

        protected final java.util.function.Supplier<Geometry> supplier
      • indexedShapeId

        protected final java.lang.String indexedShapeId
      • indexedShapeType

        protected final java.lang.String indexedShapeType
      • indexedShapeIndex

        protected java.lang.String indexedShapeIndex
      • indexedShapePath

        protected java.lang.String indexedShapePath
      • indexedShapeRouting

        protected java.lang.String indexedShapeRouting
      • ignoreUnmapped

        protected boolean ignoreUnmapped
    • Constructor Detail

      • AbstractGeometryQueryBuilder

        @Deprecated
        protected AbstractGeometryQueryBuilder​(java.lang.String fieldName,
                                               ShapeBuilder shape)
        Creates a new ShapeQueryBuilder whose Query will be against the given field name using the given Shape
        Parameters:
        fieldName - Name of the field that will be queried
        shape - Shape used in the Query
      • AbstractGeometryQueryBuilder

        public AbstractGeometryQueryBuilder​(java.lang.String fieldName,
                                            Geometry shape)
        Creates a new AbstractGeometryQueryBuilder whose Query will be against the given field name using the given Shape
        Parameters:
        fieldName - Name of the field that will be queried
        shape - Shape used in the Query
      • AbstractGeometryQueryBuilder

        protected AbstractGeometryQueryBuilder​(java.lang.String fieldName,
                                               java.lang.String indexedShapeId)
        Creates a new ShapeQueryBuilder whose Query will be against the given field name and will use the Shape found with the given ID
        Parameters:
        fieldName - Name of the field that will be filtered
        indexedShapeId - ID of the indexed Shape that will be used in the Query
      • AbstractGeometryQueryBuilder

        @Deprecated
        protected AbstractGeometryQueryBuilder​(java.lang.String fieldName,
                                               java.lang.String indexedShapeId,
                                               java.lang.String indexedShapeType)
        Creates a new AbstractGeometryQueryBuilder whose Query will be against the given field name and will use the Shape found with the given ID in the given type
        Parameters:
        fieldName - Name of the field that will be filtered
        indexedShapeId - ID of the indexed Shape that will be used in the Query
        indexedShapeType - Index type of the indexed Shapes
      • AbstractGeometryQueryBuilder

        protected AbstractGeometryQueryBuilder​(java.lang.String fieldName,
                                               Geometry shape,
                                               java.lang.String indexedShapeId,
                                               @Nullable
                                               java.lang.String indexedShapeType)
      • AbstractGeometryQueryBuilder

        protected AbstractGeometryQueryBuilder​(java.lang.String fieldName,
                                               java.util.function.Supplier<Geometry> supplier,
                                               java.lang.String indexedShapeId,
                                               @Nullable
                                               java.lang.String indexedShapeType)
      • AbstractGeometryQueryBuilder

        protected AbstractGeometryQueryBuilder​(StreamInput in)
                                        throws java.io.IOException
        Read from a stream.
        Throws:
        java.io.IOException
    • Method Detail

      • fieldName

        public java.lang.String fieldName()
        Returns:
        the name of the field that will be queried
      • shape

        public QB shape​(Geometry geometry)
        Sets the shapeBuilder for the query shape.
        Parameters:
        geometry - the geometry
        Returns:
        this
      • shape

        public Geometry shape()
        Returns:
        the shape used in the Query
      • indexedShapeId

        public java.lang.String indexedShapeId()
        Returns:
        the ID of the indexed Shape that will be used in the Query
      • indexedShapeType

        @Deprecated
        public java.lang.String indexedShapeType()
        Deprecated.
        Types are in the process of being removed.
        Returns:
        the document type of the indexed Shape that will be used in the Query
      • indexedShapeIndex

        public QB indexedShapeIndex​(java.lang.String indexedShapeIndex)
        Sets the name of the index where the indexed Shape can be found
        Parameters:
        indexedShapeIndex - Name of the index where the indexed Shape is
        Returns:
        this
      • indexedShapeIndex

        public java.lang.String indexedShapeIndex()
        Returns:
        the index name for the indexed Shape that will be used in the Query
      • indexedShapePath

        public QB indexedShapePath​(java.lang.String indexedShapePath)
        Sets the path of the field in the indexed Shape document that has the Shape itself
        Parameters:
        indexedShapePath - Path of the field where the Shape itself is defined
        Returns:
        this
      • indexedShapePath

        public java.lang.String indexedShapePath()
        Returns:
        the path of the indexed Shape that will be used in the Query
      • indexedShapeRouting

        public QB indexedShapeRouting​(java.lang.String indexedShapeRouting)
        Sets the optional routing to the indexed Shape that will be used in the query
        Parameters:
        indexedShapeRouting - indexed shape routing
        Returns:
        this
      • indexedShapeRouting

        public java.lang.String indexedShapeRouting()
        Returns:
        the optional routing to the indexed Shape that will be used in the Query
      • relation

        public QB relation​(ShapeRelation relation)
        Sets the relation of query shape and indexed shape.
        Parameters:
        relation - relation of the shapes
        Returns:
        this
      • relation

        public ShapeRelation relation()
        Returns:
        the relation of query shape and indexed shape to use in the Query
      • ignoreUnmapped

        public AbstractGeometryQueryBuilder<QB> ignoreUnmapped​(boolean ignoreUnmapped)
        Sets whether the query builder should ignore unmapped fields (and run a MatchNoDocsQuery in place of this query) or throw an exception if the field is unmapped.
      • ignoreUnmapped

        public boolean ignoreUnmapped()
        Gets whether the query builder will ignore unmapped fields (and run a MatchNoDocsQuery in place of this query) or throw an exception if the field is unmapped.
      • validContentTypes

        protected abstract java.util.List validContentTypes()
        list of content types this shape query is compatible with
      • buildShapeQuery

        protected abstract org.apache.lucene.search.Query buildShapeQuery​(QueryShardContext context,
                                                                          MappedFieldType fieldType)
        builds the appropriate lucene shape query
      • queryFieldType

        protected abstract java.lang.String queryFieldType()
        returns expected content type for this query
      • doShapeQueryXContent

        protected abstract void doShapeQueryXContent​(XContentBuilder builder,
                                                     ToXContent.Params params)
                                              throws java.io.IOException
        writes the xcontent specific to this shape query
        Throws:
        java.io.IOException
      • newShapeQueryBuilder

        protected abstract AbstractGeometryQueryBuilder<QB> newShapeQueryBuilder​(java.lang.String fieldName,
                                                                                 Geometry shape)
        creates a new ShapeQueryBuilder from the provided field name and shape builder
      • newShapeQueryBuilder

        protected abstract AbstractGeometryQueryBuilder<QB> newShapeQueryBuilder​(java.lang.String fieldName,
                                                                                 java.util.function.Supplier<Geometry> shapeSupplier,
                                                                                 java.lang.String indexedShapeId,
                                                                                 java.lang.String indexedShapeType)
        creates a new ShapeQueryBuilder from the provided field name, supplier, indexed shape id, and indexed shape type
      • isValidContentType

        protected boolean isValidContentType​(java.lang.String typeName)
        returns true if the provided field type is valid for this query