Record Class SearchValue

java.lang.Object
java.lang.Record
io.fluxzero.common.api.search.SearchValue

public record SearchValue(String path, ValueSelection selection) extends Record
Explicit minimum or maximum selection for range filters and ordering. An annotated document without a minimum retains maximum semantics until the application reindexes it.
  • Constructor Details

    • SearchValue

      public SearchValue(String path, ValueSelection selection)
      Creates an instance of a SearchValue record class.
      Parameters:
      path - the value for the path record component
      selection - the value for the selection record component
  • Method Details

    • min

      public static SearchValue min(String path)
      Selects the lowest non-null field value.
    • max

      public static SearchValue max(String path)
      Selects the highest non-null field value.
    • between

      public BetweenConstraint between(Object lower, Object upper)
      Compares the selected value against an inclusive lower and exclusive upper bound.
    • below

      public BetweenConstraint below(Object upper)
      Compares the selected value against an exclusive upper bound.
    • atLeast

      public BetweenConstraint atLeast(Object lower)
      Compares the selected value against an inclusive lower bound.
    • sortPath

      public String sortPath()
      Internal wire spelling; the path is encoded to preserve arbitrary delimiters.
    • fromSortPath

      public static SearchValue fromSortPath(String path)
      Decodes an explicit collection-value ordering key, or returns null for an ordinary key.
    • key

      public String key(Document document)
      Computes the selected value from sortable entries, with maximum fallback for legacy entries, or raw unannotated values.
    • key

      public String key(SerializedDocument document)
      Resolves a response-only continuation key, falling back to the complete document's field values.
    • project

      public static SerializedDocument project(SerializedDocument source, List<String> sorting, Predicate<Document.Path> pathFilter)
      Projects a response while transporting its ordering values independently of stored document bytes.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • path

      public String path()
      Returns the value of the path record component.
      Returns:
      the value of the path record component
    • selection

      public ValueSelection selection()
      Returns the value of the selection record component.
      Returns:
      the value of the selection record component