Class ExternalFileField

  • All Implemented Interfaces:
    SchemaAware

    public class ExternalFileField
    extends FieldType
    implements SchemaAware
    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.

    • 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)
    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.

    You can return the value as a field in the document by wrapping it like so: fl=id,field(inventory_count).

    See Also:
    ExternalFileFieldReloader