org.apache.lucene.benchmark.byTask.feeds

## Class SpatialDocMaker

- java.lang.Object
- - org.apache.lucene.benchmark.byTask.feeds.DocMaker
  - - org.apache.lucene.benchmark.byTask.feeds.SpatialDocMaker

All Implemented Interfaces:
  Closeable, AutoCloseable

    public class SpatialDocMaker
    extends DocMaker

Indexes spatial data according to a configured `SpatialStrategy` with optional shape transformation via a configured `SpatialDocMaker.ShapeConverter`. The converter can turn points into circles and bounding boxes, in order to vary the type of indexing performance tests. Unless it's subclass-ed to do otherwise, this class configures a `SpatialContext`, `SpatialPrefixTree`, and `RecursivePrefixTreeStrategy`. The Strategy is made available to a query maker via the static method `getSpatialStrategy(int)`. See spatial.alg for a listing of spatial parameters, in particular those starting with "spatial." and "doc.spatial".

### Nested Class Summary

Nested Classes
`static interface` `SpatialDocMaker.ShapeConverter` Converts one shape to another.

### Nested classes/interfaces inherited from class org.apache.lucene.benchmark.byTask.feeds.DocMaker

`DocMaker.DocState`

### Field Summary

Fields
`static String` `SPATIAL_FIELD`

### Fields inherited from class org.apache.lucene.benchmark.byTask.feeds.DocMaker

`BODY_FIELD, bodyValType, BYTES_FIELD, config, DATE_FIELD, DATE_MSEC_FIELD, ID_FIELD, indexProperties, NAME_FIELD, reuseFields, source, TIME_SEC_FIELD, TITLE_FIELD, valType`

### Constructor Summary

Constructors
Constructor and Description
`SpatialDocMaker()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static SpatialStrategy` `getSpatialStrategy(int roundNumber)` Looks up the SpatialStrategy from the given round -- `Config.getRoundNumber()`.
`protected SpatialStrategy` `makeCompositeStrategy(Config config, Map<String,String> configMap, org.locationtech.spatial4j.context.SpatialContext ctx)`
`Document` `makeDocument()` Creates a `Document` object ready for indexing.
`Document` `makeDocument(int size)` Same as `DocMaker.makeDocument()`, only this method creates a document of the given size input by `size`.
`protected RecursivePrefixTreeStrategy` `makeRPTStrategy(String spatialField, Config config, Map<String,String> configMap, org.locationtech.spatial4j.context.SpatialContext ctx)`
`protected SerializedDVStrategy` `makeSerializedDVStrategy(String spatialField, Config config, Map<String,String> configMap, org.locationtech.spatial4j.context.SpatialContext ctx)`
`static SpatialDocMaker.ShapeConverter` `makeShapeConverter(SpatialStrategy spatialStrategy, Config config, String configKeyPrefix)` Optionally converts points to circles, and optionally bbox'es result.
`static org.locationtech.spatial4j.shape.Shape` `makeShapeFromString(SpatialStrategy strategy, String name, String shapeStr)`
`protected SpatialStrategy` `makeSpatialStrategy(Config config)` Builds a SpatialStrategy from configuration options.
`protected SpatialStrategy` `makeSpatialStrategy(Config config, Map<String,String> configMap, org.locationtech.spatial4j.context.SpatialContext ctx)`
`void` `setConfig(Config config, ContentSource source)` Set the configuration parameters of this doc maker.

### Methods inherited from class org.apache.lucene.benchmark.byTask.feeds.DocMaker

`close, getDocState, resetInputs`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### SPATIAL_FIELD

    public static final String SPATIAL_FIELD

See Also:
  Constant Field Values

### Constructor Detail

#### SpatialDocMaker

    public SpatialDocMaker()

### Method Detail

#### getSpatialStrategy

    public static SpatialStrategy getSpatialStrategy(int roundNumber)

Looks up the SpatialStrategy from the given round -- `Config.getRoundNumber()`. It's an error if it wasn't created already for this round -- when SpatialDocMaker is initialized.

#### makeSpatialStrategy

    protected SpatialStrategy makeSpatialStrategy(Config config)

Builds a SpatialStrategy from configuration options.

#### makeSpatialStrategy

    protected SpatialStrategy makeSpatialStrategy(Config config,
                                                  Map<String,String> configMap,
                                                  org.locationtech.spatial4j.context.SpatialContext ctx)

#### makeRPTStrategy

    protected RecursivePrefixTreeStrategy makeRPTStrategy(String spatialField,
                                                          Config config,
                                                          Map<String,String> configMap,
                                                          org.locationtech.spatial4j.context.SpatialContext ctx)

#### makeSerializedDVStrategy

    protected SerializedDVStrategy makeSerializedDVStrategy(String spatialField,
                                                            Config config,
                                                            Map<String,String> configMap,
                                                            org.locationtech.spatial4j.context.SpatialContext ctx)

#### makeCompositeStrategy

    protected SpatialStrategy makeCompositeStrategy(Config config,
                                                    Map<String,String> configMap,
                                                    org.locationtech.spatial4j.context.SpatialContext ctx)

#### setConfig

    public void setConfig(Config config,
                          ContentSource source)

Description copied from class: `DocMaker`
Set the configuration parameters of this doc maker.

Overrides:
  `setConfig` in class `DocMaker`

#### makeShapeConverter

    public static SpatialDocMaker.ShapeConverter makeShapeConverter(SpatialStrategy spatialStrategy,
                                                                    Config config,
                                                                    String configKeyPrefix)

Optionally converts points to circles, and optionally bbox'es result.

#### makeDocument

    public Document makeDocument()
                          throws Exception

Description copied from class: `DocMaker`
Creates a `Document` object ready for indexing. This method uses the `ContentSource` to get the next document from the source, and creates a `Document` object from the returned fields. If `reuseFields` was set to true, it will reuse `Document` and `Field` instances.

Overrides:
  `makeDocument` in class `DocMaker`
Throws:
  `Exception`

#### makeShapeFromString

    public static org.locationtech.spatial4j.shape.Shape makeShapeFromString(SpatialStrategy strategy,
                                                                             String name,
                                                                             String shapeStr)

#### makeDocument

    public Document makeDocument(int size)
                          throws Exception

Description copied from class: `DocMaker`
Same as `DocMaker.makeDocument()`, only this method creates a document of the given size input by `size`.

Overrides:
  `makeDocument` in class `DocMaker`
Throws:
  `Exception`