"Na falta de um simbolo abstrato legal em vez duma caixa pentelha. Use qualquer um, quem for fazer inspecao, pelo da uma risadinha antes... ;-)" - Doutor Colgate...
/**
* example usage of the configurator pattern. E Lucene nao eh banco de dados, eh banco de indice.
* os dados ficam no banco ou nao, pode ser o sistema de arquivos. mas nao ficam no lucene.
* Lucene eh Bussieness Inteligence e serviço de macaco eh ficar pulando feito um idiota. e nao tocar instrumento nenhum.
as usual need to finish..
TODO: Finish You IDIOT, or i KILL YOU.
* Mouse Bussiness eh coisa seria.. ;-)
**/
package org.nanotek.lucene.tika;
public class TikaBaseDocumentBuilder<S extends TikaInputStream> implements LuceneDocumentBuilder<S> , DocumentTransformer<S,Document>{
private Tika tika;
private String textFieldName = "TextData";
private Configurator<C,P,Document> configurator;
public TikaBaseDocumentBuilder() {
initTika();
}
@Override
public Document buildDocument(S source) throws DocumentBuilderException {
return transform(source);
}
private void initTika() {
tika = new Tika();
}
public Tika getTika() {
return tika;
}
public void setTika(Tika tika) {
this.tika = tika;
}
public String getTextFieldName() {
return textFieldName;
}
public void setTextFieldName(String textFieldName) {
this.textFieldName = textFieldName;
}
@Override
public Document transform(S source) throws TransformerException {
Document document = null;
String txtExtracted;
if (tika == null)
initTika();
try {
txtExtracted = tika.parseToString(source);
document = new Document();
Field fileLocationField = new TextField("file_location", source.toString() , Field.Store.YES); //$NON-NLS-1$ //$NON-NLS-2$
document.add(fileLocationField);
Field wordField = new TextField(textFieldName, txtExtracted, Field.Store.YES); //$NON-NLS-1$ //$NON-NLS-2$
document.add(wordField);
Field modifiedField = new LongField("modified" , new Date().getTime() , Field.Store.YES); //$NON-NLS-1$
document.add(modifiedField);
} catch (IOException | TikaException e) {
throw new TransformerException(e);
}
return document;
}
}