/* 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; /** Match a range of values. * * RangeQuery matches documents where the value for a particular field falls * within a given range. */ class Lucy::Search::RangeQuery inherits Lucy::Search::Query : dumpable { CharBuf *field; Obj *lower_term; Obj *upper_term; bool_t include_lower; bool_t include_upper; inert incremented RangeQuery* new(const CharBuf *field, Obj *lower_term = NULL, Obj *upper_term = NULL, bool_t include_lower = true, bool_t include_upper = true); /** Takes 5 parameters; field is required, as * is at least one of either lower_term or * upper_term. * * @param field The name of a sortable field. * @param lower_term Lower delimiter. If not supplied, all values * less than upper_term will pass. * @param upper_term Upper delimiter. If not supplied, all values greater * than lower_term will pass. * @param include_lower Indicates whether docs which match * lower_term should be included in the results. * @param include_upper Indicates whether docs which match * upper_term should be included in the results. */ public inert RangeQuery* init(RangeQuery *self, const CharBuf *field, Obj *lower_term = NULL, Obj *upper_term = NULL, bool_t include_lower = true, bool_t include_upper = true); public bool_t Equals(RangeQuery *self, Obj *other); public incremented CharBuf* To_String(RangeQuery *self); public incremented RangeCompiler* Make_Compiler(RangeQuery *self, Searcher *searcher, float boost); public void Serialize(RangeQuery *self, OutStream *outstream); public incremented RangeQuery* Deserialize(RangeQuery *self, InStream *instream); public void Destroy(RangeQuery *self); } class Lucy::Search::RangeCompiler inherits Lucy::Search::Compiler { inert incremented RangeCompiler* new(RangeQuery *parent, Searcher *searcher, float boost); inert RangeCompiler* init(RangeCompiler *self, RangeQuery *parent, Searcher *searcher, float boost); public incremented nullable Matcher* Make_Matcher(RangeCompiler *self, SegReader *reader, bool_t need_score); public incremented RangeCompiler* Deserialize(RangeCompiler *self, InStream *instream); }