I have made it work, like this:
having( having( ANY STREAM and(notNull(NULL FIELD), True)), and( eq(MAYBE NULL FIELD, val(FIELD STR)), TRUE)) Em qua., 6 de jul. de 2022 às 10:09, Kojo <[email protected]> escreveu: > Joel, this seems to be pretty new. You are hero! > > But I still have a problem. Please check below. > > This works: > having( > ANY STREAM > and(notNull(NULL FIELD))) > ) > > This doesn't work, as expected, since and function does not short circuit > and evaluate all values: > having( > ANY STREAM > and(notNull(NULL FIELD), eq(NULL FIELD, val(ANY VALUE))) > ) > > I need something like the examples below, but they don't work: > having( > ANY STREAM > eq(isNull(FIELD), 'AAA', FIELD), val(ANY VALUE)) > ) > > having( > ANY STREAM > eq(if(notNull(FIELD), FIELD, 'aaa'), val(ANY VALUE))) > ) > > Always the same exception: > > "EXCEPTION": "Unable to check eq(...) because a null value was found", > > > > Can you help me? > > > Em ter., 5 de jul. de 2022 às 22:13, Joel Bernstein <[email protected]> > escreveu: > >> Here are some null handling examples: >> >> >> https://solr.apache.org/guide/solr/latest/query-guide/transform.html#handling-nulls >> >> >> >> Joel Bernstein >> http://joelsolr.blogspot.com/ >> >> >> On Tue, Jul 5, 2022 at 4:44 PM Kojo <[email protected]> wrote: >> >> > I found this e-mail archive >> > https://lists.apache.org/thread/vk3o0zz1w4grcj2chfqcwg8twg8t08gc that >> > seems >> > to be related to this issue, but I did not found any Jira ticket or any >> > other comment. >> > >> > Can you give me some advice? >> > >> > Em seg., 4 de jul. de 2022 às 22:24, Kojo <[email protected]> >> escreveu: >> > >> > > I cannot check equality against null in Solr 9.0. It always raise >> > > exception. IE: >> > > >> > > having( >> > > STREAM >> > > eq(any_valid_field, null)) >> > > >> > > "EXCEPTION": "Unable to check eq(...) because a null value was found" >> > > >> > > Does the statement below changed in Solr 9.0? >> > > >> > > Thanks! >> > > >> > > if Syntax >> > > < >> > >> https://solr.apache.org/guide/8_4/stream-evaluator-reference.html#if-syntax >> > > >> > > >> > > The expressions below show the various ways in which you can use the >> if >> > > evaluator. >> > > >> > > if(fieldA,fieldB,fieldC) // if fieldA is true then fieldB else fieldC >> > > if(gt(fieldA,5), fieldA, 5) // if fieldA > 5 then fieldA else 5 >> > > if(eq(fieldB,null), null, div(fieldA,fieldB)) // if fieldB is null >> then >> > null else fieldA / fieldB >> > > >> > > >> > >> >
