alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

package org.apache.lucene.search;

/**
 * Copyright 2004 The Apache Software Foundation
 *
 * Licensed 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.
 */

import org.apache.lucene.index.IndexReader;
import java.io.IOException;

/**
 * Expert: Maintains caches of term values.
 *
 * 

Created: May 19, 2004 11:13:14 AM * * @author Tim Jones (Nacimiento Software) * @since lucene 1.4 * @version $Id: FieldCache.java,v 1.1 2004/05/19 23:05:27 tjones Exp $ */ public interface FieldCache { /** Indicator for StringIndex values in the cache. */ // NOTE: the value assigned to this constant must not be // the same as any of those in SortField!! public static final int STRING_INDEX = -1; /** Expert: Stores term text values and document ordering data. */ public static class StringIndex { /** All the term values, in natural order. */ public final String[] lookup; /** For each document, an index into the lookup array. */ public final int[] order; /** Creates one of these objects */ public StringIndex (int[] values, String[] lookup) { this.order = values; this.lookup = lookup; } } /** Expert: The cache used internally by sorting and range query classes. */ public static FieldCache DEFAULT = new FieldCacheImpl(); /** Checks the internal cache for an appropriate entry, and if none is * found, reads the terms in field as integers and returns an array * of size reader.maxDoc() of the value each document * has in the given field. * @param reader Used to get field values. * @param field Which field contains the integers. * @return The values in the given field for each document. * @throws IOException If any error occurs. */ public int[] getInts (IndexReader reader, String field) throws IOException; /** Checks the internal cache for an appropriate entry, and if * none is found, reads the terms in field as floats and returns an array * of size reader.maxDoc() of the value each document * has in the given field. * @param reader Used to get field values. * @param field Which field contains the floats. * @return The values in the given field for each document. * @throws IOException If any error occurs. */ public float[] getFloats (IndexReader reader, String field) throws IOException; /** Checks the internal cache for an appropriate entry, and if none * is found, reads the term values in field and returns an array * of size reader.maxDoc() containing the value each document * has in the given field. * @param reader Used to get field values. * @param field Which field contains the strings. * @return The values in the given field for each document. * @throws IOException If any error occurs. */ public String[] getStrings (IndexReader reader, String field) throws IOException; /** Checks the internal cache for an appropriate entry, and if none * is found reads the term values in field and returns * an array of them in natural order, along with an array telling * which element in the term array each document uses. * @param reader Used to get field values. * @param field Which field contains the strings. * @return Array of terms and index into the array for each document. * @throws IOException If any error occurs. */ public StringIndex getStringIndex (IndexReader reader, String field) throws IOException; /** Checks the internal cache for an appropriate entry, and if * none is found reads field to see if it contains integers, floats * or strings, and then calls one of the other methods in this class to get the * values. For string values, a StringIndex is returned. After * calling this method, there is an entry in the cache for both * type AUTO and the actual found type. * @param reader Used to get field values. * @param field Which field contains the values. * @return int[], float[] or StringIndex. * @throws IOException If any error occurs. */ public Object getAuto (IndexReader reader, String field) throws IOException; /** Checks the internal cache for an appropriate entry, and if none * is found reads the terms out of field and calls the given SortComparator * to get the sort values. A hit in the cache will happen if reader, * field, and comparator are the same (using equals()) * as a previous call to this method. * @param reader Used to get field values. * @param field Which field contains the values. * @param comparator Used to convert terms into something to sort by. * @return Array of sort objects, one for each document. * @throws IOException If any error occurs. */ public Comparable[] getCustom (IndexReader reader, String field, SortComparator comparator) throws IOException; }

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.