org.infinispan.query.impl.externalizers.LuceneTermQueryExternalizer Maven / Gradle / Ivy
package org.infinispan.query.impl.externalizers;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.Collections;
import java.util.Set;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.TermQuery;
import org.infinispan.commons.marshall.AbstractExternalizer;
/**
* WARNING: this Externalizer implementation drops some state associated to the TermQuery instance.
*
* A TermQuery is potentially connected to many open resources whose reference will
* be severed by this externalizer, and also supports advanced options to set additional
* state which will not be taken into consideration at this stage.
*/
public class LuceneTermQueryExternalizer extends AbstractExternalizer {
@Override
public Set> getTypeClasses() {
return Collections.singleton(TermQuery.class);
}
@Override
public TermQuery readObject(final ObjectInput input) throws IOException, ClassNotFoundException {
final float boost = input.readFloat();
final Term term = (Term) input.readObject();
TermQuery termQuery = new TermQuery(term);
termQuery.setBoost(boost);
return termQuery;
}
@Override
public void writeObject(final ObjectOutput output, final TermQuery query) throws IOException {
output.writeFloat(query.getBoost());
output.writeObject(query.getTerm());
}
@Override
public Integer getId() {
return ExternalizerIds.LUCENE_QUERY_TERM;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy