Package 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
Modifier and Type
Class
Description
`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
Modifier and Type
Field
Description
`static final 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
Description
`SpatialDocMaker()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### SPATIAL_FIELD

public static final String SPATIAL_FIELD

See Also:
  - Constant Field Values

## Constructor Details

### SpatialDocMaker

public SpatialDocMaker()

## Method Details

### 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`