Solr将表达式存储为变量以避免重新计算

Solr将表达式存储为变量以避免重新计算,solr,Solr,我想知道是否有一种方法可以将Solr函数表达式存储在中间变量中,这样就不会每次都重新计算它 以我的具体需要为例。我有必要按距离排序(但每个距离都分组在不同的范围集中,就像距离刻面frange一样)。这些范围是用户可定义的,可以是任意长度 例如,用户定义范围集1,2,3,发送到Solr的表达式为: max(map(geodist(),0,1,1),max(map(geodist(),1,2,2),map(geodist(),2,3,3))) asc 该geodist()调用是否可以存储/记忆,或

我想知道是否有一种方法可以将
Solr
函数表达式存储在中间变量中,这样就不会每次都重新计算它

以我的具体需要为例。我有必要按距离排序(但每个距离都分组在不同的范围集中,就像距离刻面
frange
一样)。这些范围是用户可定义的,可以是任意长度

例如,用户定义范围集
1,2,3
,发送到
Solr
的表达式为:

max(map(geodist(),0,1,1),max(map(geodist(),1,2,2),map(geodist(),2,3,3))) asc

geodist()
调用是否可以存储/记忆,或者
Solr
是否对此类表达式进行了内部优化?

我不确定以下内容,但可能值得一试:-

{!func}max(map($v3,0,1,1),$v2)&v2={!func}max($v4,$v5)&v4=map($v3,1,2,2)&v5=map($v3,2,3,3)&v3=geodist()
上述操作称为参数解引用

我们正在将函数geodist()指定给一个局部参数v3。此参数在另一组参数中被替换:-v4和v5,这两个参数在v2和主功能中被进一步替换

但是,上述功能最近在Solr4.0中引入