Package org.apache.lucene.facet.taxonomy.directory

# Class ReindexingEnrichedDirectoryTaxonomyWriter

java.lang.Object
org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter
org.apache.lucene.facet.taxonomy.directory.ReindexingEnrichedDirectoryTaxonomyWriter

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `TaxonomyWriter`, `TwoPhaseCommit`

public class ReindexingEnrichedDirectoryTaxonomyWriter extends DirectoryTaxonomyWriter
Use this `TaxonomyWriter` to append arbitrary fields to the ordinal documents in the taxonomy. To update the custom data added to the docs, it is required to `reindexWithNewOrdinalData(BiConsumer)`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter

`DirectoryTaxonomyWriter.DiskOrdinalMap, DirectoryTaxonomyWriter.MemoryOrdinalMap, DirectoryTaxonomyWriter.OrdinalMap`

## Field Summary

### Fields inherited from class org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter

`INDEX_EPOCH`

## Constructor Summary

Constructors
Constructor
Description
`ReindexingEnrichedDirectoryTaxonomyWriter(Directory d, BiConsumer<FacetLabel,Document> ordinalDataAppender)`
Create a taxonomy writer that will allow editing the ordinal docs before indexing them.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`enrichOrdinalDocument(Document d, FacetLabel categoryPath)`
Add fields specified by the `ordinalDataAppender` to the provided `Document`.
`void`
`reindexWithNewOrdinalData(BiConsumer<FacetLabel,Document> ordinalDataAppender)`
Delete the existing taxonomy index and recreate it using new ordinal data.

### Methods inherited from class org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter

`addCategory, addTaxonomy, close, closeResources, commit, createIndexWriterConfig, defaultTaxonomyWriterCache, ensureOpen, findCategory, getCache, getDirectory, getLiveCommitData, getParent, getSize, getTaxonomyEpoch, openIndexWriter, prepareCommit, replaceTaxonomy, rollback, setCacheMissesUntilFill, setLiveCommitData`

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

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

## Constructor Details

### ReindexingEnrichedDirectoryTaxonomyWriter

public ReindexingEnrichedDirectoryTaxonomyWriter(Directory d, BiConsumer<FacetLabel,Document> ordinalDataAppender) throws IOException
Create a taxonomy writer that will allow editing the ordinal docs before indexing them.

Throws:
  `IOException`

## Method Details

### enrichOrdinalDocument

protected void enrichOrdinalDocument(Document d, FacetLabel categoryPath)
Add fields specified by the `ordinalDataAppender` to the provided `Document`.

Overrides:
  `enrichOrdinalDocument` in class `DirectoryTaxonomyWriter`

### reindexWithNewOrdinalData

public void reindexWithNewOrdinalData(BiConsumer<FacetLabel,Document> ordinalDataAppender) throws IOException
Delete the existing taxonomy index and recreate it using new ordinal data. The ordinals themselves will be preserved, so the caller does not need to update references to them in the main index.

Throws:
  `IOException`