Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-16646

Create a new function query operator isnan to verify if value is NaN

    XMLWordPrintableJSON

Details

    Description

      It would be useful to have a function query operator (e.g. `isnan`) to check rather a value is a float NaN (not a number).

      Examples of use cases:

      • Filtering out resulting documents having NaN in a certain field or expression
      • Setting values and expressions according to the condition of a field/expression being NaN (`if(isnan(value),0,1)`)
      • Replacing NaN by a default value (similar as a coalesce): `if(isnan(value),0,value)`

      This function/operator is particularly important considering that the cosine similarity calculated by KNN queries with Dense Vectors might return a NaN on the score depending on the vectors. For an example of a query returning NaN in the response (with the films example):

      http://localhost:8983/solr/films/select?fl=id%2C%24similarity&q=*%3A*&similarity=%7B!knn%20f%3Dfilm_vector%20topK%3D10000%7D[0.0%2C0.0%2C0.0%2C0.0%2C0.0%2C0.0%2C0.0%2C0.0%2C0.0%2C0.0]&sort=%24similarity%20desc

      Attachments

        Issue Links

          Activity

            People

              krisden Kevin Risden
              gmagno Gabriel Magno
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m