You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Mike Drob (Jira)" <ji...@apache.org> on 2021/12/03 21:26:00 UTC

[jira] [Comment Edited] (SOLR-15833) Exists query does not work for SRPT

    [ https://issues.apache.org/jira/browse/SOLR-15833?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17453210#comment-17453210 ] 

Mike Drob edited comment on SOLR-15833 at 12/3/21, 9:25 PM:
------------------------------------------------------------

Houston suggested to me that on AbstractSpatialFieldType we can do:

{noformat}
  @Override
  protected Query getSpecializedExistenceQuery(QParser parser, SchemaField field) {
    PrefixQuery query = new PrefixQuery(new Term(field.getName(), ""));
    query.setRewriteMethod(field.getType().getRewriteMethod(parser, field));
    return query;
  }
{noformat}


was (Author: mdrob):
Houston suggested to me that we can do:

{noformat}
  @Override
  protected Query getSpecializedExistenceQuery(QParser parser, SchemaField field) {
    PrefixQuery query = new PrefixQuery(new Term(field.getName(), ""));
    query.setRewriteMethod(field.getType().getRewriteMethod(parser, field));
    return query;
  }
{noformat}

> Exists query does not work for SRPT
> -----------------------------------
>
>                 Key: SOLR-15833
>                 URL: https://issues.apache.org/jira/browse/SOLR-15833
>             Project: Solr
>          Issue Type: Improvement
>    Affects Versions: 8.6.3
>            Reporter: Mike Drob
>            Priority: Major
>
> {noformat}
> @@ -172,6 +173,8 @@ public class TestSolr4Spatial extends SolrTestCaseJ4 {
>      checkHits(fieldName, "0,0", 100, DistanceUtils.EARTH_MEAN_RADIUS_KM, 0);//doesn't error
>    }
> +  @Test public void testExistsQuery() { assertQ(req("q", fieldName + ":*", "fl", "id," + fieldName)); }
> +
>    private void checkHits(String fieldName, String pt, double distKM, double sphereRadius, int count, int ... docIds) throws ParseException {
>      checkHits(fieldName, true, pt, distKM, sphereRadius, count, docIds);
>    }
> {noformat}
> This test passes against 8.5.0 release and fails when running 8.6.3.
> I initially suspected SOLR-11746, but that doesn't line up with the release info, unless some of that revert/recommit stuff came in later.
> This error happens because the {{exists}} query for spatial types gets turned into a range query with inclusive null bounds, which then causes the bounding box parsing to fail. And generating the exception incidentally fails because we try to pass a null argument to String.contains!
> Some options for solving this:
> * See null bounds when creating our shape and return a new shape that matches everything
> * Go back to using a prefix query
> * Find some other extra "clever" data like norms that the field leaves around
> We might also need to check additional fields for this same behavior.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org