From fe242e9cc5b2764ac029f9b63f96ec0aeac6e1c0 Mon Sep 17 00:00:00 2001 From: qindongliang <18210507492@126.com> Date: Wed, 18 May 2016 14:02:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=8Esolrconfig.xml?= =?UTF-8?q?=E9=87=8C=E9=9D=A2=E4=BC=A0=E8=BF=87=E6=9D=A5=E7=9A=84=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E5=8F=82=E6=95=B0=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/functionquery/MyValueParser.java | 51 ++++--------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/easy/custom/functionquery/MyValueParser.java b/src/main/java/com/easy/custom/functionquery/MyValueParser.java index 14f230f..dc3ecab 100644 --- a/src/main/java/com/easy/custom/functionquery/MyValueParser.java +++ b/src/main/java/com/easy/custom/functionquery/MyValueParser.java @@ -1,7 +1,6 @@ package com.easy.custom.functionquery; import org.apache.lucene.queries.function.ValueSource; -import org.apache.solr.common.SolrException; import org.apache.solr.common.util.NamedList; import org.apache.solr.search.FunctionQParser; import org.apache.solr.search.SyntaxError; @@ -9,8 +8,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; - /** * Created by qindongliang on 2016/5/11. */ @@ -20,50 +17,22 @@ public class MyValueParser extends ValueSourceParser { final static Logger log= LoggerFactory.getLogger(MyValueParser.class); //接受传过来的参数 - List params; + private int maxYears; + private int money_maxTimes; + private int money_base; + // handle configuration parameters + // passed through solrconfig.xml public void init(NamedList args) { - //得到一个映射之后,转成NamedList便于操作 - params=((NamedList)args.get("words")).getAll("word"); - if(params.isEmpty()){ - throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,"至少有一个参数"); - } - - // handle configuration parameters - // passed through solrconfig.xml - for(String pm:params){ - log.info("函数查询参数:{}",pm); - } - this.params=params; - log.info("函数查询的前台参数: size:{} info:{}",params.size(),params.toString()); - + maxYears=(Integer) ((NamedList)args.get("strategy")).get("maxYears"); + money_maxTimes=(Integer) ((NamedList)args.get("strategy")).get("money_maxTimes"); + money_base=(Integer) ((NamedList)args.get("strategy")).get("money_base"); + log.info("初始化加权因子参数: maxYears:{} money_maxTimes:{} money_base:{} ",maxYears,money_maxTimes,money_base); } @Override public ValueSource parse(FunctionQParser fq) throws SyntaxError { - - - //log.info("参数啥东西:{} ",fq.getString()); - //得到的结果如下 - //参数啥东西:myfunc(easy_year,easy_money) - - - -// log.info("参数啥东西:{}",functionQParser.getParams().getParameterNamesIterator().toString()); - -// String year=functionQParser.parseArg(); -// String money=functionQParser.parseArg(); -// log.info("进来就看有几个valuesource:{} ",functionQParser.parseValueSourceList().size()); -// log.info("进来就看有几个valuesource:{} ",functionQParser.parseValueSourceList().size()); - - - - - - -// log.info("函数的前台几个字段:{} , value list长度:{}",year+","+money,vs.size()); - - return new FunctionValueSource(params,fq.parseValueSourceList()); + return new FunctionValueSource(maxYears,money_maxTimes,money_base,fq.parseValueSourceList()); } }