mirror of https://github.com/apache/lucene.git
SOLR-2316: fail early if synonym file not provided
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1060846 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9ea1d0146a
commit
b2cad88aad
|
@ -46,6 +46,9 @@ public final class SynonymFilter extends TokenFilter {
|
|||
|
||||
public SynonymFilter(TokenStream in, SynonymMap map) {
|
||||
super(in);
|
||||
if (map == null)
|
||||
throw new IllegalArgumentException("map is required");
|
||||
|
||||
this.map = map;
|
||||
// just ensuring these attributes exist...
|
||||
addAttribute(CharTermAttribute.class);
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.apache.lucene.analysis.synonym.SynonymFilter;
|
|||
import org.apache.lucene.analysis.synonym.SynonymMap;
|
||||
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
|
||||
import org.apache.solr.common.ResourceLoader;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.util.StrUtils;
|
||||
import org.apache.solr.util.plugin.ResourceLoaderAware;
|
||||
|
||||
|
@ -40,7 +41,8 @@ public class SynonymFilterFactory extends BaseTokenFilterFactory implements Reso
|
|||
|
||||
public void inform(ResourceLoader loader) {
|
||||
String synonyms = args.get("synonyms");
|
||||
|
||||
if (synonyms == null)
|
||||
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Missing required argument 'synonyms'.");
|
||||
boolean ignoreCase = getBoolean("ignoreCase", false);
|
||||
boolean expand = getBoolean("expand", true);
|
||||
|
||||
|
@ -50,26 +52,24 @@ public class SynonymFilterFactory extends BaseTokenFilterFactory implements Reso
|
|||
tokFactory = loadTokenizerFactory( loader, tf, args );
|
||||
}
|
||||
|
||||
if (synonyms != null) {
|
||||
List<String> wlist=null;
|
||||
try {
|
||||
File synonymFile = new File(synonyms);
|
||||
if (synonymFile.exists()) {
|
||||
wlist = loader.getLines(synonyms);
|
||||
} else {
|
||||
List<String> files = StrUtils.splitFileNames(synonyms);
|
||||
wlist = new ArrayList<String>();
|
||||
for (String file : files) {
|
||||
List<String> lines = loader.getLines(file.trim());
|
||||
wlist.addAll(lines);
|
||||
}
|
||||
List<String> wlist=null;
|
||||
try {
|
||||
File synonymFile = new File(synonyms);
|
||||
if (synonymFile.exists()) {
|
||||
wlist = loader.getLines(synonyms);
|
||||
} else {
|
||||
List<String> files = StrUtils.splitFileNames(synonyms);
|
||||
wlist = new ArrayList<String>();
|
||||
for (String file : files) {
|
||||
List<String> lines = loader.getLines(file.trim());
|
||||
wlist.addAll(lines);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
synMap = new SynonymMap(ignoreCase);
|
||||
parseRules(wlist, synMap, "=>", ",", expand,tokFactory);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
synMap = new SynonymMap(ignoreCase);
|
||||
parseRules(wlist, synMap, "=>", ",", expand,tokFactory);
|
||||
}
|
||||
|
||||
private SynonymMap synMap;
|
||||
|
|
Loading…
Reference in New Issue