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

David Smiley edited comment on SOLR-16916 at 10/26/23 11:05 PM:
----------------------------------------------------------------

defType is the query parser to use for "q" (as we all know).  But if the user 
uses the JSON Query DSL +with JSON for the value of the query+ (vs a String), 
then defType should either be ignored (what I did here) or maybe we consider it 
an error.  Or let it be as it was but it's kind of a sneaky issue.

For reference, the test here in TestJsonRequestWithEdismaxDefType posts the 
following JSON:
{code:json}
{
  "query":{
    "bool":{"should":[{"lucene":{"query":"id:1"}}, "id:2"]}
  }
}
{code}
In the JSON Query DSL, "query" is an alias for "q".  Its value is JSON (not a 
string) in this example but it may be a string.  The internal workings convert 
this JSON to a local-params based structure that must be parsed by the lucene 
query parser (not edismax or anything else).


was (Author: dsmiley):
defType is the query parser to use for "q" (as we all know).  But if the user 
uses the JSON Query DSL +with JSON for the value of the query+ (vs a String), 
then defType should either be ignored (what I did here) or maybe we consider it 
an error.  Or let it be as it was but it's kind of a sneaky issue.

> JSON Query DSL doesn't work if defType isn't lucene
> ---------------------------------------------------
>
>                 Key: SOLR-16916
>                 URL: https://issues.apache.org/jira/browse/SOLR-16916
>             Project: Solr
>          Issue Type: Bug
>          Components: query parsers
>    Affects Versions: 7.2
>            Reporter: David Smiley
>            Assignee: David Smiley
>            Priority: Minor
>             Fix For: 9.4
>
>          Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> If the [JSON Query DSL|https://solr.apache.org/guide/8_4/json-query-dsl.html] 
> is used (POSTing JSON), it requires that the default "lucene" query parser is 
> used.  If for some reason defType is set, like in the defaults section of the 
> request handler, then this doesn't work.  Internally, the JSON is rewritten 
> to local-params syntax which requires the default parser, not another like 
> edismax.
> This behavior broke in 7.2 when other parsers stopped processing local-params 
> in the name of security.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to