Does anyone have an example using this?
I have a SynonymEngine that returns a an array list of strings, some of
which may be multiple words. How can I incorporate this with my
SynonymEngine at index time?
Also, the javadoc for the ShingleMatrixFilter class says:
Without a spacer character it can be used to handle
composition and decomposion of words such as searching for "multi
dimensional" instead of "multidimensional".
Does any one have a working example of this?
Here's my synonym engine (taken from the Lucene In Action book):
public interface SynonymEngine {
public String[] getSynonyms(String word) throws IOException;
}
public class DexSynonymEngine implements SynonymEngine {
private static Map<String, String[]> map = new HashMap<String,
String[]>();
static {
// numbers
map.put("1" , new String[] {"one"});
map.put("2" , new String[] {"two"});
map.put("3" , new String[] {"three"});
map.put("4" , new String[] {"four"});
map.put("5" , new String[] {"five"});
map.put("6" , new String[] {"six", "seis"});
map.put("7" , new String[] {"seven"});
map.put("8" , new String[] {"eight"});
map.put("9" , new String[] {"nine"});
map.put("10" , new String[] {"ten"});
map.put("11" , new String[] {"eleven"});
map.put("12" , new String[] {"twelve"});
map.put("13" , new String[] {"thirteen"});
map.put("14" , new String[] {"fourteen"});
map.put("15" , new String[] {"fifteen"});
map.put("16" , new String[] {"sixteen"});
map.put("17" , new String[] {"seventeen"});
map.put("18" , new String[] {"eighteen"});
map.put("19" , new String[] {"nineteen"});
map.put("20" , new String[] {"twenty"});
map.put("21" , new String[] {"twenty one"});
// words
map.put("pharmacy" , new String[] {"drug store"});
map.put("pharmacy" , new String[] {"drug store"});
map.put("hospital" , new String[] {"medical center"});
map.put("fast", new String[]{"quick", "speedy"});
map.put("search", new String[]{"explore", "hunt", "hunting",
"look"});
map.put("sound", new String[]{"audio"});
map.put("restaurant", new String[]{"eatery"});
}
public String[] getSynonyms(String word) throws IOException {
return map.get(word);
}
}