package org.infinispan.query.test;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.CachingWrapperQuery;
import org.apache.lucene.search.Filter;
import org.apache.lucene.search.QueryWrapperFilter;
import org.apache.lucene.search.TermQuery;
import org.hibernate.search.annotations.Factory;
/**
* Filter for using in full text search. Filters persons by the blurb.
*
* @author Anna Manukyan
*/
public class PersonBlurbFilterFactory {
private String blurbText;
public void setBlurbText(String blurbText) {
this.blurbText = blurbText;
}
@Factory
public Filter getFilter() {
BooleanQuery query = new BooleanQuery.Builder()
.add(new TermQuery(new Term("blurb", blurbText)), BooleanClause.Occur.FILTER)
.build();
return new QueryWrapperFilter(new CachingWrapperQuery(query));
}
}