/* 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. */ public class Lucy::Search::RangeQuery inherits Lucy::Search::Query { String *field; Obj *lower_term; Obj *upper_term; bool include_lower; bool include_upper; /** Create a new RangeQuery. * * 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 incremented RangeQuery* new(String *field, Obj *lower_term = NULL, Obj *upper_term = NULL, bool include_lower = true, bool include_upper = true); /** Initialize a RangeQuery. See [](.new) for a description of the * parameters. */ public inert RangeQuery* init(RangeQuery *self, String *field, Obj *lower_term = NULL, Obj *upper_term = NULL, bool include_lower = true, bool include_upper = true); public bool Equals(RangeQuery *self, Obj *other); public incremented String* To_String(RangeQuery *self); public incremented Compiler* Make_Compiler(RangeQuery *self, Searcher *searcher, float boost, bool subordinate = false); void Serialize(RangeQuery *self, OutStream *outstream); incremented RangeQuery* Deserialize(decremented RangeQuery *self, InStream *instream); public incremented Obj* Dump(RangeQuery *self); public incremented Obj* Load(RangeQuery *self, Obj *dump); 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 need_score); }