Uploaded image for project: 'Hibernate Search'
  1. HSEARCH-3256

Search 6 groundwork - Restore support for bypassing bridges in the predicate/sort DSL

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.0.0.Alpha3
    • Component/s: engine, query
    • Labels:
      None

      Description

      Follow-up on HSEARCH-3221 Closed .

      Essentially allow to do this in the predicate DSL:

      .predicate().match().onRawField( "myField" ).orRawField( "myOtherField", "yetAnotherField" ).matching(<value>)
      

      and this in the sort DSL:

      .sort().byRawField( "fieldName" ).asc().onMissingValue().use( <value> )
      

      ... so that <value> is interpreted as the un-converted (raw) value of the field, and is not passed through the user-defined converter, but through a "pass-through" converter.

      This should allow us to introduce a consistent syntax for the projection DSL, to project on a field without converting it:

      .projection().rawField( "fieldName", String.class )
      

      On the backend side, this means we will have to inform the backend, when fetching a builder, that:

      1. Compatibility checks should ignore any custom converter
      2. Methods such as org.hibernate.search.engine.search.predicate.spi.MatchPredicateBuilder#value, org.hibernate.search.engine.search.predicate.spi.RangePredicateBuilder#lowerLimit or org.hibernate.search.engine.search.dsl.sort.FieldSortMissingValueContext#use should ignore any custom converter and use a PassThroughToDocumentFieldValueConverter instead.

      How to do that remains to be seen...

        Attachments

          Issue links

            Activity

              People

              • Assignee:
                fercoli Fabio Massimo Ercoli
                Reporter:
                yrodiere Yoann Rodière
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: