Enum ObjectStructure

java.lang.Object
java.lang.Enum<ObjectStructure>
org.hibernate.search.engine.backend.types.ObjectStructure
All Implemented Interfaces:
Serializable, Comparable<ObjectStructure>

public enum ObjectStructure extends Enum<ObjectStructure>
Defines how the structure of an object field is preserved upon indexing.
  • Enum Constant Details

    • DEFAULT

      public static final ObjectStructure DEFAULT
      Use the backend-specific default.
    • FLATTENED

      public static final ObjectStructure FLATTENED
      Flatten multi-valued object fields.

      This structure is generally more efficient, but has the disadvantage of dropping the original structure by making the leaf fields multi-valued instead of the object fields.

      For instance this structure:

      • title = Leviathan Wakes
      • authors =
        • (first element)
          • firstName = Daniel
          • lastName = Abraham
        • (second element)
          • firstName = Ty
          • lastName = Frank
      Will become:
      • title = Leviathan Wakes
      • authors.firstName =
        • (first element) Daniel
        • (second element) Ty
      • authors.lastName =
        • (first element) Abraham
        • (second element) Frank
      As a result, a search for authors.firstname:Ty AND authors.lastname=Abraham would return the above document even though Ty Abraham does not exist.
    • NESTED

      public static final ObjectStructure NESTED
      Store object fields as nested documents.

      This structure is generally less efficient, but has the advantage of preserving the original structure. Note however that access to that information when querying requires special care. See in particular the "nested" predicate.

  • Method Details

    • values

      public static ObjectStructure[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static ObjectStructure valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null