Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Solr3.3中实现mod函数_Solr_Lucene_Modulo - Fatal编程技术网

如何在Solr3.3中实现mod函数

如何在Solr3.3中实现mod函数,solr,lucene,modulo,Solr,Lucene,Modulo,我现在正在使用Solr3.3,在查询中需要使用mod函数,但mod函数直到4.0才存在。所以,我想用其他函数来替换3.3中的mod,比如 q=subject:mp3&fq={!frange l=1 u=1}sub(id,product(floor(div(id,2)),2)). 但是我发现这个函数不能工作,因为sub(id,product(floor(div(id,2)),2))将 等于id偶数id是奇数。在3.3中,是否有人可以为mod功能提供有效的替代品?谢谢如果您已经编写了一些

我现在正在使用Solr3.3,在查询中需要使用mod函数,但mod函数直到4.0才存在。所以,我想用其他函数来替换3.3中的mod,比如

q=subject:mp3&fq={!frange l=1 u=1}sub(id,product(floor(div(id,2)),2)). 
但是我发现这个函数不能工作,因为sub(id,product(floor(div(id,2)),2))将
等于id偶数id是奇数。在3.3中,是否有人可以为mod功能提供有效的替代品?谢谢

如果您已经编写了一些Java,那么它应该很容易实现,只需编写一个
ModFunction
类(参见示例)。然后为它编写一个
ValueSourceParser
,它应该如下所示:

public class ModFunctionParser extends ValueSourceParser {
  @Override
  public ValueSource parse(FunctionQParser fp) throws ParseException {
    ValueSource a = fp.parseValueSource();
    ValueSource b = fp.parseValueSource();
    return new ModFunction(a, b);
  }
}
最后