1
package org.apache.solr.core;
3
* Licensed to the Apache Software Foundation (ASF) under one or more
4
* contributor license agreements. See the NOTICE file distributed with
5
* this work for additional information regarding copyright ownership.
6
* The ASF licenses this file to You under the Apache License, Version 2.0
7
* (the "License"); you may not use this file except in compliance with
8
* the License. You may obtain a copy of the License at
10
* http://www.apache.org/licenses/LICENSE-2.0
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
19
import java.io.IOException;
21
import org.apache.lucene.index.IndexReader;
22
import org.apache.lucene.store.Directory;
23
import org.apache.solr.common.util.NamedList;
24
import org.apache.solr.util.plugin.NamedListInitializedPlugin;
27
* Factory used to build a new IndexReader instance.
29
public abstract class IndexReaderFactory implements NamedListInitializedPlugin {
30
protected int termInfosIndexDivisor = 1;//IndexReader.DEFAULT_TERMS_INDEX_DIVISOR; Set this once Lucene makes this public.
32
* Potentially initializes {@link #termInfosIndexDivisor}. Overriding classes should call super.init() in order
33
* to make sure termInfosIndexDivisor is set.
35
* <code>init</code> will be called just once, immediately after creation.
37
* The args are user-level initialization parameters that may be specified
38
* when declaring an indexReaderFactory in solrconfig.xml
41
public void init(NamedList args) {
42
Integer v = (Integer)args.get("setTermIndexDivisor");
44
termInfosIndexDivisor = v.intValue();
50
* @return The setting of {@link #termInfosIndexDivisor}
52
public int getTermInfosIndexDivisor() {
53
return termInfosIndexDivisor;
57
* Creates a new IndexReader instance using the given Directory.
59
* @param indexDir indexDir index location
60
* @param readOnly return readOnly IndexReader
61
* @return An IndexReader instance
64
public abstract IndexReader newReader(Directory indexDir, boolean readOnly)