Class StringField

  • All Implemented Interfaces:
    IndexableField

    public final class StringField
    extends Field
    A field that is indexed but not tokenized: the entire String value is indexed as a single token. For example this might be used for a 'country' field or an 'id' field. If you also need to sort on this field, separately add a SortedDocValuesField to your document.
    • Field Detail

      • TYPE_NOT_STORED

        public static final FieldType TYPE_NOT_STORED
        Indexed, not tokenized, omits norms, indexes DOCS_ONLY, not stored.
      • TYPE_STORED

        public static final FieldType TYPE_STORED
        Indexed, not tokenized, omits norms, indexes DOCS_ONLY, stored
    • Constructor Detail

      • StringField

        public StringField​(String name,
                           String value,
                           Field.Store stored)
        Creates a new textual StringField, indexing the provided String value as a single token.
        Parameters:
        name - field name
        value - String value
        stored - Store.YES if the content should also be stored
        Throws:
        IllegalArgumentException - if the field name or value is null.
      • StringField

        public StringField​(String name,
                           BytesRef value,
                           Field.Store stored)
        Creates a new binary StringField, indexing the provided binary (BytesRef) value as a single token.
        Parameters:
        name - field name
        value - BytesRef value. The provided value is not cloned so you must not change it until the document(s) holding it have been indexed.
        stored - Store.YES if the content should also be stored
        Throws:
        IllegalArgumentException - if the field name or value is null.
    • Method Detail

      • setStringValue

        public void setStringValue​(String value)
        Description copied from class: Field
        Expert: change the value of this field. This can be used during indexing to re-use a single Field instance to improve indexing speed by avoiding GC cost of new'ing and reclaiming Field instances. Typically a single Document instance is re-used as well. This helps most on small documents.

        Each Field instance should only be used once within a single Document instance. See ImproveIndexingSpeed for details.

        Overrides:
        setStringValue in class Field
      • setBytesValue

        public void setBytesValue​(BytesRef value)
        Description copied from class: Field
        Expert: change the value of this field. See Field.setStringValue(String).

        NOTE: the provided BytesRef is not copied so be sure not to change it until you're done with this field.

        Overrides:
        setBytesValue in class Field