/* 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; /** Posting with per-position boost. * * RichPosting is similar to * L, but weighting is * per-position rather than per-field. To exploit this, you need a custom * L which assigns varying boosts to * individual L objects. * * A typical application for RichPosting is an HTMLAnalyzer which assigns * boost based on the visual size and weight of the marked up text: H1 * blocks get the greatest weight, H2 blocks almost as much, etc. */ class Lucy::Index::Posting::RichPosting cnick RichPost inherits Lucy::Index::Posting::ScorePosting { float *prox_boosts; inert incremented RichPosting* new(Similarity *similarity); inert RichPosting* init(RichPosting *self, Similarity *similarity); public void Destroy(RichPosting *self); void Read_Record(RichPosting *self, InStream *instream); incremented RawPosting* Read_Raw(RichPosting *self, InStream *instream, int32_t last_doc_id, CharBuf *term_text, MemoryPool *mem_pool); void Add_Inversion_To_Pool(RichPosting *self, PostingPool *post_pool, Inversion *inversion, FieldType *type, int32_t doc_id, float doc_boost, float length_norm); incremented RichPostingMatcher* Make_Matcher(RichPosting *self, Similarity *sim, PostingList *plist, Compiler *compiler, bool_t need_score); } class Lucy::Index::Posting::RichPostingMatcher cnick RichPostMatcher inherits Lucy::Index::Posting::ScorePostingMatcher { inert RichPostingMatcher* init(RichPostingMatcher *self, Similarity *similarity, PostingList *posting_list, Compiler *compiler); }