Package org.apache.lucene.document

# Class SortedSetDocValuesField

java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.SortedSetDocValuesField

All Implemented Interfaces:
  `IndexableField`

public class SortedSetDocValuesField extends Field
Field that stores a set of per-document `BytesRef` values, indexed for faceting,grouping,joining. Here's an example usage:

       document.add(new SortedSetDocValuesField(name, new BytesRef("hello")));
       document.add(new SortedSetDocValuesField(name, new BytesRef("world")));

If you also need to store the value, you should add a separate `StoredField` instance.

Each value can be at most 32766 bytes long.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.lucene.document.Field

`Field.Store`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final FieldType`
`TYPE`
Type for sorted bytes DocValues

### Fields inherited from class org.apache.lucene.document.Field

`fieldsData, name, type`

## Constructor Summary

Constructors
Constructor
Description
`SortedSetDocValuesField(String name, BytesRef bytes)`
Create a new sorted DocValues field.

## Method Summary

Modifier and Type
Method
Description
`static SortedSetDocValuesField`
`indexedField(String name, BytesRef bytes)`
Creates a new `SortedSetDocValuesField` with the specified 64-bit long value that also creates a `skip index`.
`static Query`
`newSlowExactQuery(String field, BytesRef value)`
Create a query for matching an exact `BytesRef` value.
`static Query`
`newSlowRangeQuery(String field, BytesRef lowerValue, BytesRef upperValue, boolean lowerInclusive, boolean upperInclusive)`
Create a range query that matches all documents whose value is between `lowerValue` and `upperValue`.
`static Query`
`newSlowSetQuery(String field, Collection<BytesRef> values)`
Create a query matching any of the specified values.

### Methods inherited from class org.apache.lucene.document.Field

`binaryValue, fieldType, getCharSequenceValue, invertableType, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, storedValue, stringValue, tokenStream, tokenStreamValue, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### TYPE

public static final FieldType TYPE
Type for sorted bytes DocValues

## Constructor Details

### SortedSetDocValuesField

public SortedSetDocValuesField(String name, BytesRef bytes)
Create a new sorted DocValues field.

Parameters:
  `name` - field name
  `bytes` - binary content
Throws:
  `IllegalArgumentException` - if the field name is null

## Method Details

### indexedField

public static SortedSetDocValuesField indexedField(String name, BytesRef bytes)
Creates a new `SortedSetDocValuesField` with the specified 64-bit long value that also creates a `skip index`.

Parameters:
  `name` - field name
  `bytes` - binary content
Throws:
  `IllegalArgumentException` - if the field name is null

### newSlowRangeQuery

public static Query newSlowRangeQuery(String field, BytesRef lowerValue, BytesRef upperValue, boolean lowerInclusive, boolean upperInclusive)
Create a range query that matches all documents whose value is between `lowerValue` and `upperValue`.

This query also works with fields that have indexed `SortedDocValuesField`s.

NOTE: Such queries cannot efficiently advance to the next match, which makes them slow if they are not ANDed with a selective query. As a consequence, they are best used wrapped in an `IndexOrDocValuesQuery`, alongside a range query that executes on points, such as `BinaryPoint.newRangeQuery(java.lang.String, byte[], byte[])`.

### newSlowExactQuery

public static Query newSlowExactQuery(String field, BytesRef value)
Create a query for matching an exact `BytesRef` value.

This query also works with fields that have indexed `SortedDocValuesField`s.

NOTE: Such queries cannot efficiently advance to the next match, which makes them slow if they are not ANDed with a selective query. As a consequence, they are best used wrapped in an `IndexOrDocValuesQuery`, alongside a range query that executes on points, such as `BinaryPoint.newExactQuery(java.lang.String, byte[])`.

### newSlowSetQuery

public static Query newSlowSetQuery(String field, Collection<BytesRef> values)
Create a query matching any of the specified values.

This query also works with fields that have indexed `SortedDocValuesField`s.

NOTE: Such queries cannot efficiently advance to the next match, which makes them slow if they are not ANDed with a selective query. As a consequence, they are best used wrapped in an `IndexOrDocValuesQuery`, alongside a set query that executes on postings, such as `TermInSetQuery`.