package org.infinispan.query.test;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.CachingWrapperFilter;
import org.apache.lucene.search.Filter;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.QueryWrapperFilter;
import org.apache.lucene.search.TermQuery;
import org.hibernate.search.annotations.Factory;
import org.hibernate.search.annotations.Key;
import org.hibernate.search.filter.FilterKey;
import org.hibernate.search.filter.StandardFilterKey;
/**
* Filter for using in full text search. Filters persons by the blurb.
*
* @author Anna Manukyan
*/
public class PersonBlurbFilterFactory {
private String blurbText;
@Key
public FilterKey getKey() {
StandardFilterKey key = new StandardFilterKey();
key.addParameter(blurbText);
return key;
}
public void setBlurbText(String blurbText) {
this.blurbText = blurbText;
}
@Factory
public Filter getFilter() {
Query query = new TermQuery(new Term("blurb", blurbText));
return new CachingWrapperFilter(new QueryWrapperFilter(query));
}
}