Пример #1
0
                internal IntersectTermsEnum(TermsReader outerInstance, CompiledAutomaton compiled, BytesRef startTerm) : base(outerInstance)
                {
                    //if (TEST) System.out.println("Enum init, startTerm=" + startTerm);
                    this.outerInstance = outerInstance;
                    this.fst           = outerInstance.index;
                    this.fstReader     = fst.BytesReader;
                    this.fstOutputs    = outerInstance.index.Outputs;
                    this.fsa           = compiled.RunAutomaton;
                    this.level         = -1;
                    this.stack         = new Frame[16];
                    for (int i = 0; i < stack.Length; i++)
                    {
                        this.stack[i] = new Frame();
                    }

                    Frame frame;

                    frame = LoadVirtualFrame(NewFrame());
                    this.level++;
                    frame = LoadFirstFrame(NewFrame());
                    PushFrame(frame);

                    this.decoded = false;
                    this.pending = false;

                    if (startTerm == null)
                    {
                        pending = IsAccept(TopFrame());
                    }
                    else
                    {
                        DoSeekCeil(startTerm);
                        pending = !startTerm.Equals(term) && IsValid(TopFrame()) && IsAccept(TopFrame());
                    }
                }
Пример #2
0
 internal SegmentTermsEnum(FSTOrdTermsReader.TermsReader outerInstance) : base(outerInstance)
 {
     this.outerInstance = outerInstance;
     this.fstEnum       = new BytesRefFSTEnum <long>(outerInstance.index);
     this.decoded       = false;
     this.seekPending   = false;
 }
Пример #3
0
                private readonly long[] totalTermFreq; // LUCENENET: marked readonly

                internal BaseTermsEnum(TermsReader outerInstance)
                {
                    this.outerInstance = outerInstance;
                    this.state         = outerInstance.outerInstance.postingsReader.NewTermState();
                    this.term          = null;
                    this.statsReader.Reset(outerInstance.statsBlock);
                    this.metaLongsReader.Reset(outerInstance.metaLongsBlock);
                    this.metaBytesReader.Reset(outerInstance.metaBytesBlock);

                    this.longs         = RectangularArrays.ReturnRectangularArray <long>(INTERVAL, outerInstance.longsSize);
                    this.bytesStart    = new int[INTERVAL];
                    this.bytesLength   = new int[INTERVAL];
                    this.docFreq       = new int[INTERVAL];
                    this.totalTermFreq = new long[INTERVAL];
                    this.statsBlockOrd = -1;
                    this.metaBlockOrd  = -1;
                    if (!outerInstance.HasFreqs)
                    {
                        Arrays.Fill(totalTermFreq, -1);
                    }
                }