package org.basex.util.ft; import static org.basex.util.Token.*; import java.io.IOException; import org.basex.io.IO; import org.basex.util.hash.TokenMap; /** * Simple stemming directory for full-text requests. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class StemDir extends TokenMap { /** * Reads a stop words file. * @param fl file reference * @return true if everything went alright */ public boolean read(final IO fl) { try { for(final byte[] sl : split(fl.read(), '\n')) { byte[] val = null; for(final byte[] st : split(norm(sl), ' ')) { if(val == null) val = st; else add(st, val); } } return true; } catch(final IOException ex) { return false; } } /** * Returns a stemmed word or the word itself. * @param word word to be stemmed * @return resulting token */ public byte[] stem(final byte[] word) { final byte[] sn = get(word); return sn != null ? sn : word; } }