Hi Solr colleagues,

On Solr 8.4.1, we’ve noticed that the following types of JSON DSL queries work 
if our luceneMatchVersion is 7.1 or lower, or if our default query parser is 
set to lucene:

{"query":{"bool":{"must":[{"lucene":{"query":"plasticity","df":"title_a_index"}}]}}}

However, if the query parser is set to edismax and the luceneMatchVersion is 
7.2 or higher, the parsed query visible with debug=true becomes a complete 
mess, searching for the terms “bool” and “must”, rather than the terms we 
actually want to search for:


+(DisjunctionMaxQuery(((author_main_unstem_search:bool)^1000.0 | 
(local_subject_unstem_search:bool)^15.0 | (author_unstem_search:bool)^40.0 […]

Also while debug=true, we noticed that the JSON DSL queries get converted into 
a querystring with local params: ”{!bool must=$_tt1 }”.  So I am suspecting 
these two changes in Solr 7.2 as the reason we can’t use Boolean JSON queries 
with edismax and a recent luceneMatchVersion: 
https://solr.apache.org/docs/7_2_0/changes/Changes.html#v7.2.0.upgrade_notes.  
Does that seem correct?

Also, could this be related to the question Benjamin Armintor asked on June 23 
(subject: Changes to JSON query API/syntax in Solr 9.x?)?  I’m specifically 
curious about whether a luceneMatchVersion of 7.1 or lower still works in Solr 
9?

Thanks for your insights,

  -Jane

--
Jane Sandberg (she/her)
Library Software Engineer, Discovery and Access Services

Reply via email to