Solr中多值字段的FunctionQuery

时间:2018-10-22 03:59:04

标签: java solr lucene

我在Solr中的MultiValued字段(字段名:multival)上编写了一个自定义函数查询。 下面是代码

public class testMultiValValueSourceParser extends ValueSourceParser {
    public void init(NamedList namedList) {
    }


    @Override
    public ValueSource parse(FunctionQParser fp) throws SyntaxError {

        List<ValueSource> sources = fp.parseValueSourceList();

        MultiValueSource mv1 = null;

        if (sources.size() == 0) {
            throw new Error("No value sources detected");
        } else if (sources.size() == 1) {
            ValueSource vs = sources.get(0);
            if (!(vs instanceof MultiValueSource)) {
                throw new SyntaxError("multival - invalid parameters:" + sources);
            }
            mv1 = (MultiValueSource)vs;
        }

        String fieldName = "multival";
        return (new testMultiValSource(fieldName,mv1,fp));

    }
}

测试功能查询时出现错误

 "msg":"can not use FieldCache on multivalued field: multival",

错误在第

List<ValueSource> sources = fp.parseValueSourceList();

我通过solr UI在“ fl”字段中将函数查询称为“ test(multival)”,其中“ test”是我在solr配置文件上定义的函数查询的名称。

知道为什么会这样吗?

0 个答案:

没有答案