Class Util.TopNSearcher<T>

  • Enclosing class:
    Util

    public static class Util.TopNSearcher<T>
    extends java.lang.Object
    Utility class to find top N shortest paths from start point(s).
    • Field Detail

      • fst

        private final FST<T> fst
      • topN

        private final int topN
      • maxQueueDepth

        private final int maxQueueDepth
      • scratchArc

        private final FST.Arc<T> scratchArc
      • comparator

        private final java.util.Comparator<T> comparator
      • pathComparator

        private final java.util.Comparator<Util.FSTPath<T>> pathComparator
    • Constructor Detail

      • TopNSearcher

        public TopNSearcher​(FST<T> fst,
                            int topN,
                            int maxQueueDepth,
                            java.util.Comparator<T> comparator)
        Creates an unbounded TopNSearcher
        Parameters:
        fst - the FST to search on
        topN - the number of top scoring entries to retrieve
        maxQueueDepth - the maximum size of the queue of possible top entries
        comparator - the comparator to select the top N
      • TopNSearcher

        public TopNSearcher​(FST<T> fst,
                            int topN,
                            int maxQueueDepth,
                            java.util.Comparator<T> comparator,
                            java.util.Comparator<Util.FSTPath<T>> pathComparator)
    • Method Detail

      • addIfCompetitive

        protected void addIfCompetitive​(Util.FSTPath<T> path)
      • addStartPaths

        public void addStartPaths​(FST.Arc<T> node,
                                  T startOutput,
                                  boolean allowEmptyString,
                                  IntsRefBuilder input)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • addStartPaths

        public void addStartPaths​(FST.Arc<T> node,
                                  T startOutput,
                                  boolean allowEmptyString,
                                  IntsRefBuilder input,
                                  float boost,
                                  java.lang.CharSequence context,
                                  int payload)
                           throws java.io.IOException
        Adds all leaving arcs, including 'finished' arc, if the node is final, from this node into the queue.
        Throws:
        java.io.IOException
      • search

        public Util.TopResults<T> search()
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • acceptResult

        protected boolean acceptResult​(Util.FSTPath<T> path)
      • acceptPartialPath

        protected boolean acceptPartialPath​(Util.FSTPath<T> path)
        Override this to prevent considering a path before it's complete
      • acceptResult

        protected boolean acceptResult​(IntsRef input,
                                       T output)