Class ExternalFileField
- java.lang.Object
- 
- org.apache.solr.schema.FieldProperties
- 
- org.apache.solr.schema.FieldType
- 
- org.apache.solr.schema.ExternalFileField
 
 
 
- 
- All Implemented Interfaces:
- SchemaAware
 
 public class ExternalFileField extends FieldType implements SchemaAware Get values from an external file instead of the index.keyFieldwill normally be the unique key field, but it doesn't have to be.- It's OK to have a keyField value that can't be found in the index
- It's OK to have some documents without a keyField in the file (defVal is used as the default)
- It's OK for a keyField value to point to multiple documents (no uniqueness requirement)
 
 Example:
 doc33=1.414
 doc34=3.14159
 doc40=42Solr 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. You can return the value as a field in the document by wrapping it like so: fl=id,field(inventory_count).- See Also:
- ExternalFileFieldReloader
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class org.apache.solr.schema.FieldTypeFieldType.DefaultAnalyzer, FieldType.MultiValueSelector
 
- 
 - 
Field Summary- 
Fields inherited from class org.apache.solr.schema.FieldTypeANALYZER, args, AUTO_GENERATE_PHRASE_QUERIES, CHAR_FILTER, CHAR_FILTERS, CLASS_NAME, docValuesFormat, ENABLE_GRAPH_QUERIES, falseProperties, FILTER, FILTERS, INDEX, INDEX_ANALYZER, MULTI_TERM, MULTI_TERM_ANALYZER, POLY_FIELD_SEPARATOR, postingsFormat, properties, QUERY, QUERY_ANALYZER, similarity, SIMILARITY, similarityFactory, SYNONYM_QUERY_STYLE, TOKENIZER, trueProperties, TYPE, TYPE_NAME, typeName
 - 
Fields inherited from class org.apache.solr.schema.FieldPropertiesBINARY, DOC_VALUES, INDEXED, LARGE_FIELD, MULTIVALUED, OMIT_NORMS, OMIT_POSITIONS, OMIT_TF_POSITIONS, REQUIRED, SORT_MISSING_FIRST, SORT_MISSING_LAST, STORE_OFFSETS, STORE_TERMOFFSETS, STORE_TERMPAYLOADS, STORE_TERMPOSITIONS, STORE_TERMVECTORS, STORED, TOKENIZED, UNINVERTIBLE, USE_DOCVALUES_AS_STORED
 
- 
 - 
Constructor SummaryConstructors Constructor Description ExternalFileField()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description FileFloatSourcegetFileFloatSource(SchemaField field)Get a FileFloatSource for the given field, using the datadir from the IndexSchemaFileFloatSourcegetFileFloatSource(SchemaField field, String datadir)Get a FileFloatSource for the given field.org.apache.lucene.search.SortFieldgetSortField(SchemaField field, boolean reverse)Returns the SortField instance that should be used to sort fields of this type.UninvertingReader.TypegetUninversionType(SchemaField sf)If DocValues is not enabled for a field, but it's indexed, docvalues can be constructed on the fly (uninverted, aka fieldcache) on the first request to sort, facet, etc.org.apache.lucene.queries.function.ValueSourcegetValueSource(SchemaField field, QParser parser)called to get the default value source (normally, from the Lucene FieldCache.)voidinform(IndexSchema schema)Informs theIndexSchemaprovided by theschemaparameter of an event (e.g., a newFieldTypewas added, etc.protected voidinit(IndexSchema schema, Map<String,String> args)subclasses should initialize themselves with the args provided and remove valid arguments.voidwrite(TextResponseWriter writer, String name, org.apache.lucene.index.IndexableField f)calls back to TextResponseWriter to write the field value- 
Methods inherited from class org.apache.solr.schema.FieldTypecheckSchemaField, checkSupportsDocValues, createField, createField, createFields, getAnalyzerProperties, getClassArg, getDefaultMultiValueSelectorForSort, getDocValuesFormat, getExistenceQuery, getFieldQuery, getFieldTermQuery, getIndexAnalyzer, getNamedPropertyValues, getNonFieldPropertyArgs, getNumberType, getNumericSort, getPostingsFormat, getPrefixQuery, getQueryAnalyzer, getRangeQuery, getRewriteMethod, getSetQuery, getSimilarity, getSimilarityFactory, getSingleValueSource, getSortedNumericSortField, getSortedSetSortField, getSortField, getSpecializedExistenceQuery, getSpecializedRangeQuery, getStringSort, getTypeName, hasProperty, indexedToReadable, indexedToReadable, isExplicitAnalyzer, isExplicitQueryAnalyzer, isMultiValued, isPointField, isPolyField, isTokenized, isUtf8Field, marshalBase64SortValue, marshalSortValue, marshalStringSortValue, multiValuedFieldCache, readableToIndexed, readableToIndexed, restrictProps, setArgs, setIndexAnalyzer, setIsExplicitAnalyzer, setIsExplicitQueryAnalyzer, setQueryAnalyzer, setSimilarity, storedToIndexed, storedToReadable, supportsAnalyzers, toExternal, toInternal, toNativeType, toObject, toObject, toString, treatUnboundedRangeAsExistence, unmarshalBase64SortValue, unmarshalSortValue, unmarshalStringSortValue, useDocValuesAsStored, write
 
- 
 
- 
- 
- 
Method Detail- 
initprotected void init(IndexSchema schema, Map<String,String> args) Description copied from class:FieldTypesubclasses should initialize themselves with the args provided and remove valid arguments. leftover arguments will cause an exception. Common boolean properties have already been handled.
 - 
writepublic void write(TextResponseWriter writer, String name, org.apache.lucene.index.IndexableField f) throws IOException Description copied from class:FieldTypecalls back to TextResponseWriter to write the field valueSub-classes should prefer using FieldType.toExternal(IndexableField)orFieldType.toObject(IndexableField)to get the writeable external value offinstead of directly usingf.stringValue()orf.binaryValue()- Specified by:
- writein class- FieldType
- Throws:
- IOException
 
 - 
getSortFieldpublic org.apache.lucene.search.SortField getSortField(SchemaField field, boolean reverse) Description copied from class:FieldTypeReturns the SortField instance that should be used to sort fields of this type.
 - 
getUninversionTypepublic UninvertingReader.Type getUninversionType(SchemaField sf) Description copied from class:FieldTypeIf DocValues is not enabled for a field, but it's indexed, docvalues can be constructed on the fly (uninverted, aka fieldcache) on the first request to sort, facet, etc. This specifies the structure to use.This method will not be used if the field is (effectively) uninvertible="false"- Specified by:
- getUninversionTypein class- FieldType
- Parameters:
- sf- field instance
- Returns:
- type to uninvert, or null(to disallow uninversion for the field)
- See Also:
- SchemaField.isUninvertible()
 
 - 
getValueSourcepublic org.apache.lucene.queries.function.ValueSource getValueSource(SchemaField field, QParser parser) Description copied from class:FieldTypecalled to get the default value source (normally, from the Lucene FieldCache.)- Overrides:
- getValueSourcein class- FieldType
 
 - 
getFileFloatSourcepublic 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
 
 - 
getFileFloatSourcepublic 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
 
 - 
informpublic void inform(IndexSchema schema) Description copied from interface:SchemaAwareInforms theIndexSchemaprovided by theschemaparameter of an event (e.g., a newFieldTypewas added, etc.- Specified by:
- informin interface- SchemaAware
- Parameters:
- schema- The- IndexSchemainstance that inform of the update to.
 
 
- 
 
-