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.

  • 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

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

      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 SortedDocValuesFields.

      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, BytesRef... values)
      Create a query matching any of the specified values.

      This query also works with fields that have indexed SortedDocValuesFields.

      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.