Something like the method signature type checking does not accept null, and raises exception too early. But there have been some reason for the and function to behave like that, since it is documented. Or not.
Em qua., 6 de jul. de 2022 às 19:42, Joel Bernstein <[email protected]> escreveu: > I suspect the null related failure is occurring while initializing the > second parameter. So the failure is occurring before the boolean logic is > applied. > > > Joel Bernstein > http://joelsolr.blogspot.com/ > > > On Wed, Jul 6, 2022 at 6:12 PM Kojo <[email protected]> wrote: > > > Yes, I don't know if not short circuit for null values is the expected > > behavior for the AND operator according to the documentation. It seems > > weird for me too: > > and > > The and function will return the logical AND of at least 2 boolean > > parameters. The function will fail to execute if any parameters are > > non-boolean or null. Returns a boolean value. > > > > > > I would love to contribute to the project if changes need to be made. But > > unfortunally I am not working with java for many years. > > If there are any helped needed in Python, please tell me. > > > > Thank you, > > > > > > > > > > Em qua., 6 de jul. de 2022 às 17:34, Joel Bernstein <[email protected]> > > escreveu: > > > > > So the AND didn't short circuit. That seems like it needs to be fixed. > > > > > > > > > > > > Joel Bernstein > > > http://joelsolr.blogspot.com/ > > > > > > > > > On Wed, Jul 6, 2022 at 3:20 PM Kojo <[email protected]> wrote: > > > > > > > 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 > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > > > > > > > > > > > >
