org.apache.solr.schema
Class ExternalFileField

java.lang.Object
  extended by org.apache.solr.schema.FieldProperties
      extended by org.apache.solr.schema.FieldType
          extended by org.apache.solr.schema.ExternalFileField

public class ExternalFileField
extends FieldType

Get values from an external file instead of the index.

keyField will normally be the unique key field, but it doesn't have to be.

valType is a reference to another fieldType to define the value type of this field (must currently be TrieFloatField or FloatField (valType="pfloat|float|tfloat") if used). This parameter has never been implemented. As of Solr 3.6/4.0 it is optional and can be omitted. The format of the external file is simply newline separated keyFieldValue=floatValue.
Example:
doc33=1.414
doc34=3.14159
doc40=42

Solr looks for the external file in the index directory under the name of external_<fieldname> or external_<fieldname>.*

If any files of the latter pattern appear, the last (after being sorted by name) will be used and previous versions will be deleted. This is to help support systems where one may not be able to overwrite a file (like Windows, if the file is in use).

If the external file has already been loaded, and it is changed, those changes will not be visible until a commit has been done.

The external file may be sorted or unsorted by the key field, but it will be substantially slower (untested) if it isn't sorted.

Fields of this type may currently only be used as a ValueSource in a FunctionQuery.

See Also:
ExternalFileFieldReloader

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.solr.schema.FieldType
FieldType.DefaultAnalyzer
 
Field Summary
 
Fields inherited from class org.apache.solr.schema.FieldType
analyzer, args, docValuesFormat, falseProperties, log, POLY_FIELD_SEPARATOR, postingsFormat, properties, queryAnalyzer, similarity, similarityFactory, trueProperties, typeName
 
Fields inherited from class org.apache.solr.schema.FieldProperties
BINARY, DOC_VALUES, INDEXED, MULTIVALUED, OMIT_NORMS, OMIT_POSITIONS, OMIT_TF_POSITIONS, REQUIRED, SORT_MISSING_FIRST, SORT_MISSING_LAST, STORE_OFFSETS, STORE_TERMOFFSETS, STORE_TERMPOSITIONS, STORE_TERMVECTORS, STORED, TOKENIZED
 
Constructor Summary
ExternalFileField()
           
 
Method Summary
 FileFloatSource getFileFloatSource(SchemaField field)
          Get a FileFloatSource for the given field, using the datadir from the IndexSchema
 FileFloatSource getFileFloatSource(SchemaField field, String datadir)
          Get a FileFloatSource for the given field.
 SortField getSortField(SchemaField field, boolean reverse)
          Returns the SortField instance that should be used to sort fields of this type.
 ValueSource getValueSource(SchemaField field, QParser parser)
          called to get the default value source (normally, from the Lucene FieldCache.)
protected  void init(IndexSchema schema, Map<String,String> args)
          subclasses should initialize themselves with the args provided and remove valid arguments.
 void write(TextResponseWriter writer, String name, IndexableField f)
          calls back to TextResponseWriter to write the field value
 
Methods inherited from class org.apache.solr.schema.FieldType
checkSchemaField, createField, createField, createFields, getAnalyzer, getAnalyzerProperties, getDocValuesFormat, getFieldQuery, getIndexOptions, getNamedPropertyValues, getNonFieldPropertyArgs, getNumericType, getPostingsFormat, getQueryAnalyzer, getRangeQuery, getRewriteMethod, getSimilarity, getSimilarityFactory, getSimilarityProperties, getStringSort, getTypeName, hasProperty, indexedToReadable, indexedToReadable, isExplicitAnalyzer, isExplicitQueryAnalyzer, isMultiValued, isPolyField, isTokenized, multiValuedFieldCache, readableToIndexed, readableToIndexed, restrictProps, setAnalyzer, setArgs, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setQueryAnalyzer, setSimilarity, storedToIndexed, storedToReadable, toExternal, toInternal, toObject, toObject, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExternalFileField

public ExternalFileField()
Method Detail

init

protected void init(IndexSchema schema,
                    Map<String,String> args)
Description copied from class: FieldType
subclasses should initialize themselves with the args provided and remove valid arguments. leftover arguments will cause an exception. Common boolean properties have already been handled.

Overrides:
init in class FieldType

write

public void write(TextResponseWriter writer,
                  String name,
                  IndexableField f)
           throws IOException
Description copied from class: FieldType
calls back to TextResponseWriter to write the field value

Specified by:
write in class FieldType
Throws:
IOException

getSortField

public SortField getSortField(SchemaField field,
                              boolean reverse)
Description copied from class: FieldType
Returns the SortField instance that should be used to sort fields of this type.

Specified by:
getSortField in class FieldType
See Also:
SchemaField.checkSortability()

getValueSource

public ValueSource getValueSource(SchemaField field,
                                  QParser parser)
Description copied from class: FieldType
called to get the default value source (normally, from the Lucene FieldCache.)

Overrides:
getValueSource in class FieldType

getFileFloatSource

public FileFloatSource getFileFloatSource(SchemaField field)
Get a FileFloatSource for the given field, using the datadir from the IndexSchema

Parameters:
field - the field to get a source for
Returns:
a FileFloatSource

getFileFloatSource

public FileFloatSource getFileFloatSource(SchemaField field,
                                          String datadir)
Get a FileFloatSource for the given field. Call this in preference to getFileFloatSource(SchemaField) if this may be called before the Core is fully initialised (eg in SolrEventListener calls).

Parameters:
field - the field to get a source for
datadir - the data directory in which to look for the external file
Returns:
a FileFloatSource


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.