public class JDBCEmitter extends AbstractEmitter implements Initializable, Closeable
It is currently NOT thread safe because of the shared prepared statement, and depending on the jdbc implementation because of the shared connection.
As of the 2.5.0 release, this is ALPHA version. There may be breaking changes in the future.
| Modifier and Type | Class and Description |
|---|---|
static class |
JDBCEmitter.AttachmentStrategy |
static class |
JDBCEmitter.MultivaluedFieldStrategy |
| Constructor and Description |
|---|
JDBCEmitter() |
| Modifier and Type | Method and Description |
|---|---|
void |
checkInitialization(InitializableProblemHandler problemHandler) |
void |
close() |
void |
emit(List<? extends EmitData> emitData)
The default behavior is to call
Emitter.emit(String, List) on each item. |
void |
emit(String emitKey,
List<Metadata> metadataList)
This executes the emit with each call.
|
void |
initialize(Map<String,Param> params) |
void |
setAlterTable(String alterTable)
This is called immediately after the table is created.
|
void |
setAttachmentStrategy(JDBCEmitter.AttachmentStrategy attachmentStrategy) |
void |
setAttachmentStrategy(String attachmentStrategy) |
void |
setConnection(String connectionString) |
void |
setCreateTable(String createTable) |
void |
setInsert(String insert) |
void |
setKeys(Map<String,String> keys)
The implementation of keys should be a LinkedHashMap because
order matters!
|
void |
setMultivaluedFieldDelimiter(String delimiter)
|
void |
setMultivaluedFieldStrategy(JDBCEmitter.MultivaluedFieldStrategy multivaluedFieldStrategy) |
void |
setMultivaluedFieldStrategy(String strategy)
This applies to fields of type 'string' or 'varchar'.
|
getName, setNamepublic void setAlterTable(String alterTable)
alterTable - @Field public void setMultivaluedFieldStrategy(String strategy) throws TikaConfigException
setMultivaluedFieldDelimiter(String).
The default values as of 2.6.1 are JDBCEmitter.MultivaluedFieldStrategy.CONCATENATE
and the default delimiter is ", "strategy - TikaConfigExceptionpublic void setMultivaluedFieldStrategy(JDBCEmitter.MultivaluedFieldStrategy multivaluedFieldStrategy)
@Field public void setMultivaluedFieldDelimiter(String delimiter)
delimiter - @Field public void setKeys(Map<String,String> keys)
Key is the name of the metadata field, value is the type of column: boolean, string, int, long
keys - public void setAttachmentStrategy(JDBCEmitter.AttachmentStrategy attachmentStrategy)
public void emit(String emitKey, List<Metadata> metadataList) throws IOException, TikaEmitterException
emit(List).emit in interface EmitteremitKey - emit keymetadataList - list of metadata per fileIOExceptionTikaEmitterExceptionpublic void emit(List<? extends EmitData> emitData) throws IOException, TikaEmitterException
AbstractEmitterEmitter.emit(String, List) on each item.
Some implementations, e.g. Solr/ES/vespa, can benefit from subclassing this and
emitting a bunch of docs at once.emit in interface Emitteremit in class AbstractEmitterIOExceptionTikaEmitterExceptionpublic void initialize(Map<String,Param> params) throws TikaConfigException
initialize in interface Initializableparams - params to use for initializationTikaConfigExceptionpublic void checkInitialization(InitializableProblemHandler problemHandler) throws TikaConfigException
checkInitialization in interface InitializableproblemHandler - if there is a problem and no
custom initializableProblemHandler has been configured
via Initializable parameters,
this is called to respond.TikaConfigExceptionpublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableIOExceptionCopyright © 2007–2023 The Apache Software Foundation. All rights reserved.