Example usage for org.apache.lucene.util.fst FST END_LABEL

List of usage examples for org.apache.lucene.util.fst FST END_LABEL

Introduction

In this page you can find the example usage for org.apache.lucene.util.fst FST END_LABEL.

Prototype

int END_LABEL

To view the source code for org.apache.lucene.util.fst FST END_LABEL.

Click Source Link

Document

If arc has this label then that arc is final/accepted

Usage

From source file:com.github.cstoku.neologd.unidic.lucene.analysis.ja.dict.TokenInfoFST.java

License:Apache License

public FST.Arc<Long> findTargetArc(int ch, FST.Arc<Long> follow, FST.Arc<Long> arc, boolean useCache,
        FST.BytesReader fstReader) throws IOException {
    if (useCache && ch >= 0x3040 && ch <= cacheCeiling) {
        assert ch != FST.END_LABEL;
        final Arc<Long> result = rootCache[ch - 0x3040];
        if (result == null) {
            return null;
        } else {/*from w w  w . j a  va2 s. c  om*/
            arc.copyFrom(result);
            return arc;
        }
    } else {
        return fst.findTargetArc(ch, follow, arc, fstReader);
    }
}

From source file:elhuyar.bilakit.Dictionary.java

License:Apache License

IntsRef lookup(FST<IntsRef> fst, char word[], int offset, int length) {
      if (fst == null) {
          return null;
      }/*from   w  w  w  .  j a  v a2s . c o m*/
      final FST.BytesReader bytesReader = fst.getBytesReader();
      final FST.Arc<IntsRef> arc = fst.getFirstArc(new FST.Arc<IntsRef>());
      // Accumulate output as we go
      final IntsRef NO_OUTPUT = fst.outputs.getNoOutput();
      IntsRef output = NO_OUTPUT;

      int l = offset + length;
      try {
          for (int i = offset, cp = 0; i < l; i += Character.charCount(cp)) {
              cp = Character.codePointAt(word, i, l);
              if (fst.findTargetArc(cp, arc, arc, bytesReader) == null) {
                  return null;
              } else if (arc.output != NO_OUTPUT) {
                  output = fst.outputs.add(output, arc.output);
              }
          }
          if (fst.findTargetArc(FST.END_LABEL, arc, arc, bytesReader) == null) {
              return null;
          } else if (arc.output != NO_OUTPUT) {
              return fst.outputs.add(output, arc.output);
          } else {
              return output;
          }
      } catch (IOException bogus) {
          throw new RuntimeException(bogus);
      }
  }

From source file:stemmer.Dictionary.java

License:Apache License

IntsRef lookup(FST<IntsRef> fst, char word[], int offset, int length) {
    if (fst == null) {
        return null;
    }/*  w ww.j  a v a  2  s  . c  o m*/
    final FST.BytesReader bytesReader = fst.getBytesReader();
    final FST.Arc<IntsRef> arc = fst.getFirstArc(new FST.Arc<IntsRef>());
    // Accumulate output as we go
    final IntsRef NO_OUTPUT = fst.outputs.getNoOutput();
    IntsRef output = NO_OUTPUT;

    int l = offset + length;
    try {
        for (int i = offset, cp = 0; i < l; i += Character.charCount(cp)) {
            cp = Character.codePointAt(word, i, l);
            if (fst.findTargetArc(cp, arc, arc, bytesReader) == null) {
                return null;
            } else if (arc.output != NO_OUTPUT) {
                output = fst.outputs.add(output, arc.output);
            }
        }
        if (fst.findTargetArc(FST.END_LABEL, arc, arc, bytesReader) == null) {
            return null;
        } else if (arc.output != NO_OUTPUT) {
            return fst.outputs.add(output, arc.output);
        } else {
            return output;
        }
    } catch (IOException bogus) {
        throw new RuntimeException(bogus);
    }
}