/**
*
*/
package querqy.solr.contrib;
import java.io.IOException;
import org.apache.lucene.analysis.util.ResourceLoader;
import org.apache.solr.common.util.NamedList;
import querqy.lucene.contrib.rewrite.LuceneSynonymsRewriterFactory;
import querqy.rewrite.RewriterFactory;
import querqy.solr.RewriterFactoryAdapter;
/**
* @author rene
*
*/
public class SolrSynonymsRewriterFactory implements RewriterFactoryAdapter {
/*
* (non-Javadoc)
*
* @see
* querqy.solr.SolrRewriterFactory#createRewriterFactory(org.apache.solr.
* common.util.NamedList, org.apache.lucene.analysis.util.ResourceLoader)
*/
@Override
public RewriterFactory createRewriterFactory(NamedList<?> args, ResourceLoader resourceLoader) throws IOException {
Boolean expand = args.getBooleanArg("expand");
if (expand == null) {
expand = false;
}
Boolean ignoreCase = args.getBooleanArg("ignoreCase");
if (ignoreCase == null) {
ignoreCase = true;
}
String synonymResoureName = (String) args.get("synonyms");
if (synonymResoureName == null) {
throw new IllegalArgumentException("Property 'synonyms' not configured");
}
LuceneSynonymsRewriterFactory factory = new LuceneSynonymsRewriterFactory(expand, ignoreCase);
for (String resource : synonymResoureName.split(",")) {
resource = resource.trim();
if (resource.length() > 0) {
factory.addResource(resourceLoader.openResource(resource));
}
}
factory.build();
return factory;
}
}