/* 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;
/** Aggregate results from multiple Searchers.
*
* The primary use for PolySearcher is to aggregate results from several
* indexes on a single machine.
*/
public class Lucy::Search::PolySearcher
inherits Lucy::Search::Searcher {
Vector *searchers;
I32Array *starts;
int32_t doc_max;
/** Create a new PolySearcher.
*
* @param schema A Schema.
* @param searchers An array of Searchers.
*/
public inert incremented PolySearcher*
new(Schema *schema, Vector *searchers);
/** Initialize a PolySearcher.
*
* @param schema A Schema.
* @param searchers An array of Searchers.
*/
public inert PolySearcher*
init(PolySearcher *self, Schema *schema, Vector *searchers);
public void
Destroy(PolySearcher *self);
public int32_t
Doc_Max(PolySearcher *self);
public uint32_t
Doc_Freq(PolySearcher *self, String *field, Obj *term);
public void
Collect(PolySearcher *self, Query *query, Collector *collector);
incremented TopDocs*
Top_Docs(PolySearcher *self, Query *query, uint32_t num_wanted,
SortSpec *sort_spec = NULL);
public incremented HitDoc*
Fetch_Doc(PolySearcher *self, int32_t doc_id);
incremented DocVector*
Fetch_Doc_Vec(PolySearcher *self, int32_t doc_id);
}