Solr 8.3 Solrj streaming expressions do not return all field values

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Solr 8.3 Solrj streaming expressions do not return all field values

Jörn Franke
Hi,

I use streaming expressions, e.g.
Sort(Select(search(...),id,if(eq(1,1),Y,N) as found), by=“field A asc”)
(Using export handler, sort is not really mandatory , I will remove it later anyway)

This works perfectly fine if I use Solr 8.2.0 (server + client). It returns Tuples in the form { “id”,”12345”, “found”:”Y”}

However, if I use Solr 8.2.0 as server and Solr 8.3.0 as client then the above statement only returns the id field, but not the found field.

Questions:
1) is this expected behavior, ie Solr client 8.3.0 is in this case not compatible with Solr 8.2.0 and server upgrade to Solr 8.3.0 will fix this?
2) has the syntax for the above expression changed? If so how?
3) is this not expected behavior and I should create a Jira for it?

Thank you.
Best regards
Reply | Threaded
Open this post in threaded view
|

Re: Solr 8.3 Solrj streaming expressions do not return all field values

Jörn Franke
Most likely this issue can bei also reproduced in the admin UI for the streaming handler of a collection.

> Am 04.11.2019 um 13:32 schrieb Jörn Franke <[hidden email]>:
>
> Hi,
>
> I use streaming expressions, e.g.
> Sort(Select(search(...),id,if(eq(1,1),Y,N) as found), by=“field A asc”)
> (Using export handler, sort is not really mandatory , I will remove it later anyway)
>
> This works perfectly fine if I use Solr 8.2.0 (server + client). It returns Tuples in the form { “id”,”12345”, “found”:”Y”}
>
> However, if I use Solr 8.2.0 as server and Solr 8.3.0 as client then the above statement only returns the id field, but not the found field.
>
> Questions:
> 1) is this expected behavior, ie Solr client 8.3.0 is in this case not compatible with Solr 8.2.0 and server upgrade to Solr 8.3.0 will fix this?
> 2) has the syntax for the above expression changed? If so how?
> 3) is this not expected behavior and I should create a Jira for it?
>
> Thank you.
> Best regards
Reply | Threaded
Open this post in threaded view
|

Re: Solr 8.3 Solrj streaming expressions do not return all field values

Joel Bernstein
I'll probably need some more details. One thing that's useful is to look at
the logs and see the underlying Solr queries that are generated. Then try
those underlying queries against the Solr index and see what comes back. If
you're not seeing the fields with the plain Solr queries then we know it's
something going on below streaming expressions. If you are seeing the
fields then it's the expressions themselves that are not handling the data
as expected.


Joel Bernstein
http://joelsolr.blogspot.com/


On Mon, Nov 4, 2019 at 9:09 AM Jörn Franke <[hidden email]> wrote:

> Most likely this issue can bei also reproduced in the admin UI for the
> streaming handler of a collection.
>
> > Am 04.11.2019 um 13:32 schrieb Jörn Franke <[hidden email]>:
> >
> > Hi,
> >
> > I use streaming expressions, e.g.
> > Sort(Select(search(...),id,if(eq(1,1),Y,N) as found), by=“field A asc”)
> > (Using export handler, sort is not really mandatory , I will remove it
> later anyway)
> >
> > This works perfectly fine if I use Solr 8.2.0 (server + client). It
> returns Tuples in the form { “id”,”12345”, “found”:”Y”}
> >
> > However, if I use Solr 8.2.0 as server and Solr 8.3.0 as client then the
> above statement only returns the id field, but not the found field.
> >
> > Questions:
> > 1) is this expected behavior, ie Solr client 8.3.0 is in this case not
> compatible with Solr 8.2.0 and server upgrade to Solr 8.3.0 will fix this?
> > 2) has the syntax for the above expression changed? If so how?
> > 3) is this not expected behavior and I should create a Jira for it?
> >
> > Thank you.
> > Best regards
>
Reply | Threaded
Open this post in threaded view
|

Re: Solr 8.3 Solrj streaming expressions do not return all field values

Jörn Franke
Thanks I will check and come back to you. As far as I remember (but have to check) the queries generated by Solr were correct

Just to be clear the same thing works with Solr 8.2 server and Solr 8.2 client.

It show the odd behaviour with Solr 8.2 server and Solr 8.3 client.

> Am 05.11.2019 um 14:49 schrieb Joel Bernstein <[hidden email]>:
>
> I'll probably need some more details. One thing that's useful is to look at
> the logs and see the underlying Solr queries that are generated. Then try
> those underlying queries against the Solr index and see what comes back. If
> you're not seeing the fields with the plain Solr queries then we know it's
> something going on below streaming expressions. If you are seeing the
> fields then it's the expressions themselves that are not handling the data
> as expected.
>
>
> Joel Bernstein
> http://joelsolr.blogspot.com/
>
>
>> On Mon, Nov 4, 2019 at 9:09 AM Jörn Franke <[hidden email]> wrote:
>>
>> Most likely this issue can bei also reproduced in the admin UI for the
>> streaming handler of a collection.
>>
>>>> Am 04.11.2019 um 13:32 schrieb Jörn Franke <[hidden email]>:
>>>
>>> Hi,
>>>
>>> I use streaming expressions, e.g.
>>> Sort(Select(search(...),id,if(eq(1,1),Y,N) as found), by=“field A asc”)
>>> (Using export handler, sort is not really mandatory , I will remove it
>> later anyway)
>>>
>>> This works perfectly fine if I use Solr 8.2.0 (server + client). It
>> returns Tuples in the form { “id”,”12345”, “found”:”Y”}
>>>
>>> However, if I use Solr 8.2.0 as server and Solr 8.3.0 as client then the
>> above statement only returns the id field, but not the found field.
>>>
>>> Questions:
>>> 1) is this expected behavior, ie Solr client 8.3.0 is in this case not
>> compatible with Solr 8.2.0 and server upgrade to Solr 8.3.0 will fix this?
>>> 2) has the syntax for the above expression changed? If so how?
>>> 3) is this not expected behavior and I should create a Jira for it?
>>>
>>> Thank you.
>>> Best regards
>>
Reply | Threaded
Open this post in threaded view
|

Re: Solr 8.3 Solrj streaming expressions do not return all field values

Jörn Franke
I have checked now Solr 8.3 server in admin UI. Same issue.

Reproduction:
select(search(testcollection,q=“test”,df=“Default”,defType=“edismax”,fl=“id”, qt=“/export”, sort=“id asc”),id,if(eq(1,1),Y,N) as found)

In 8.3 it returns only the id field.
In 8.2 it returns id,found field.

Since found is generated by select (and not coming from the collection) there must be an issue with select.

Any idea why this is happening.

Debug logs do not show any error and the expression is correctly received by Solr.

Thank you.

Best regards

> Am 05.11.2019 um 14:59 schrieb Jörn Franke <[hidden email]>:
>
> Thanks I will check and come back to you. As far as I remember (but have to check) the queries generated by Solr were correct
>
> Just to be clear the same thing works with Solr 8.2 server and Solr 8.2 client.
>
> It show the odd behaviour with Solr 8.2 server and Solr 8.3 client.
>
>> Am 05.11.2019 um 14:49 schrieb Joel Bernstein <[hidden email]>:
>>
>> I'll probably need some more details. One thing that's useful is to look at
>> the logs and see the underlying Solr queries that are generated. Then try
>> those underlying queries against the Solr index and see what comes back. If
>> you're not seeing the fields with the plain Solr queries then we know it's
>> something going on below streaming expressions. If you are seeing the
>> fields then it's the expressions themselves that are not handling the data
>> as expected.
>>
>>
>> Joel Bernstein
>> http://joelsolr.blogspot.com/
>>
>>
>>>> On Mon, Nov 4, 2019 at 9:09 AM Jörn Franke <[hidden email]> wrote:
>>>
>>> Most likely this issue can bei also reproduced in the admin UI for the
>>> streaming handler of a collection.
>>>
>>>>> Am 04.11.2019 um 13:32 schrieb Jörn Franke <[hidden email]>:
>>>>
>>>> Hi,
>>>>
>>>> I use streaming expressions, e.g.
>>>> Sort(Select(search(...),id,if(eq(1,1),Y,N) as found), by=“field A asc”)
>>>> (Using export handler, sort is not really mandatory , I will remove it
>>> later anyway)
>>>>
>>>> This works perfectly fine if I use Solr 8.2.0 (server + client). It
>>> returns Tuples in the form { “id”,”12345”, “found”:”Y”}
>>>>
>>>> However, if I use Solr 8.2.0 as server and Solr 8.3.0 as client then the
>>> above statement only returns the id field, but not the found field.
>>>>
>>>> Questions:
>>>> 1) is this expected behavior, ie Solr client 8.3.0 is in this case not
>>> compatible with Solr 8.2.0 and server upgrade to Solr 8.3.0 will fix this?
>>>> 2) has the syntax for the above expression changed? If so how?
>>>> 3) is this not expected behavior and I should create a Jira for it?
>>>>
>>>> Thank you.
>>>> Best regards
>>>