I tried to debug this to the best of my ability, and it seems the correct name for the “raw” evaluator is “val”.
Copied from StreamContext: val=class org.apache.solr.client.solrj.io.eval.RawValueEvaluator
I think there’s a small error in stream evaluator documentation of 8.4
https://lucene.apache.org/solr/guide/8_4/stream-evaluator-reference.html
When I used “val” instead of “raw”, I got the expected response:
select(
search(
myCollection,
q="*:*",
qt="/export",
sort="id_str asc",
fl="id_str"
),
id_str,
val(abc) as text
)
{
"result-set": {
"docs": [.
{
"id_str": "deneme123",
"text": "abc"
},
{
"EOF": true,
"RESPONSE_TIME": 70
}
]
}
}
--ufuk yilmaz
Sent from Mail for Windows 10
From: ufuk y?lmaz
Sent: 26 February 2021 16:38
To: solr-user@lucene.apache.org
Subject: Select streaming expression, add a field to every tuple, replaceor raw not working
Hello all,
Solr version 8.4
I have a very simple select expression here. What I’m trying to do is to add a constant value to incoming tuples.
My collection has only 1 document. Id_str is of type String. Other fields are Solr generated.
{
"_version_":1692761378187640832,
"id_str":"experiment123",
"id":"18d658b13b6b072f"}]
}
My streaming expression:
select(
search(
myCollection,
q="*:*",
qt="/export",
sort="id_str asc",
fl="id_str"
),
id_str,
raw(ttt) as text // Docs state that select works with any evaluator. “raw” here is a stream evaluator.
)
I also tried:
select(
search(
myCollection,
q="*:*",
qt="/export",
sort="id_str asc",
fl="id_str"
),
id_str,
replace(text, null, withValue=raw(ttt)) as text //replace is described in select expression documentation. I also tried withValue=ttt directly
)
No matter what I do, response only includes id_str field, without any error:
{
"result-set":{
"docs":[{
"id_str":" experiment123"}
,{
"EOF":true,
"RESPONSE_TIME":45}]}}
I also tried wrapping text value with quotes, that didn’t work too.
What am I doing wrong?
--ufuk yilmaz
Sent from Mail for Windows 10
Copied from StreamContext: val=class org.apache.solr.client.solrj.io.eval.RawValueEvaluator
I think there’s a small error in stream evaluator documentation of 8.4
https://lucene.apache.org/solr/guide/8_4/stream-evaluator-reference.html
When I used “val” instead of “raw”, I got the expected response:
select(
search(
myCollection,
q="*:*",
qt="/export",
sort="id_str asc",
fl="id_str"
),
id_str,
val(abc) as text
)
{
"result-set": {
"docs": [.
{
"id_str": "deneme123",
"text": "abc"
},
{
"EOF": true,
"RESPONSE_TIME": 70
}
]
}
}
--ufuk yilmaz
Sent from Mail for Windows 10
From: ufuk y?lmaz
Sent: 26 February 2021 16:38
To: solr-user@lucene.apache.org
Subject: Select streaming expression, add a field to every tuple, replaceor raw not working
Hello all,
Solr version 8.4
I have a very simple select expression here. What I’m trying to do is to add a constant value to incoming tuples.
My collection has only 1 document. Id_str is of type String. Other fields are Solr generated.
{
"_version_":1692761378187640832,
"id_str":"experiment123",
"id":"18d658b13b6b072f"}]
}
My streaming expression:
select(
search(
myCollection,
q="*:*",
qt="/export",
sort="id_str asc",
fl="id_str"
),
id_str,
raw(ttt) as text // Docs state that select works with any evaluator. “raw” here is a stream evaluator.
)
I also tried:
select(
search(
myCollection,
q="*:*",
qt="/export",
sort="id_str asc",
fl="id_str"
),
id_str,
replace(text, null, withValue=raw(ttt)) as text //replace is described in select expression documentation. I also tried withValue=ttt directly
)
No matter what I do, response only includes id_str field, without any error:
{
"result-set":{
"docs":[{
"id_str":" experiment123"}
,{
"EOF":true,
"RESPONSE_TIME":45}]}}
I also tried wrapping text value with quotes, that didn’t work too.
What am I doing wrong?
--ufuk yilmaz
Sent from Mail for Windows 10