blob: 6b451089894d81a7fa8ed5f52b258d106ea3c312 [file] [log] [blame]
/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
parcel Lucy;
/** Single-segment PostingList.
*/
class Lucy::Index::SegPostingList cnick SegPList
inherits Lucy::Index::PostingList {
PostingListReader *plist_reader;
CharBuf *field;
Posting *posting;
InStream *post_stream;
InStream *skip_stream;
SkipStepper *skip_stepper;
int32_t skip_interval;
uint32_t count;
uint32_t doc_freq;
uint32_t skip_count;
uint32_t num_skips;
int32_t field_num;
inert incremented SegPostingList*
new(PostingListReader *plist_reader, const CharBuf *field);
inert SegPostingList*
init(SegPostingList *self, PostingListReader *plist_reader,
const CharBuf *field);
InStream*
Get_Post_Stream(SegPostingList *self);
uint32_t
Get_Count(SegPostingList *self);
public void
Destroy(SegPostingList *self);
public uint32_t
Get_Doc_Freq(SegPostingList *self);
public int32_t
Get_Doc_ID(SegPostingList *self);
Posting*
Get_Posting(SegPostingList *self);
public int32_t
Next(SegPostingList *self);
public int32_t
Advance(SegPostingList *self, int32_t target);
public void
Seek(SegPostingList *self, Obj *target = NULL);
/** Optimized version of Seek(), designed to speed sequential access.
*/
void
Seek_Lex(SegPostingList *self, Lexicon *lexicon);
Matcher*
Make_Matcher(SegPostingList *self, Similarity *similarity,
Compiler *compiler, bool_t need_score);
RawPosting*
Read_Raw(SegPostingList *self, int32_t last_doc_id, CharBuf *term_text,
MemoryPool *mem_pool);
}