首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

solr 自定义 dismax查询形式

2012-09-22 
solr 自定义 dismax查询方式1、在solrconfig.xml中增加queryParser nameimdismax/requestHandler nam

solr 自定义 dismax查询方式

1、在solrconfig.xml中增加

<queryParser name="imdismax"/><requestHandler name="imdismax" name="code">public class IMDisMaxQParserPlugin extends QParserPlugin{    public static String NAME = "imdismax";    public void init(NamedList args) {    }    public QParser createParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) {      return new IMDisMaxQParser(qstr, localParams, params, req);    }}

?

3、创建类IMDisMaxQParser.java 可以在里面增加中文分词

public class IMDisMaxQParser extends DisMaxQParser{    public IMDisMaxQParser(String qstr, SolrParams localParams,            SolrParams params, SolrQueryRequest req)    {        super(qstr, localParams, params, req);        if (null == this.qstr)        {            return;        }        Analyzer analyzer = req.getSchema().getQueryAnalyzer();        if (null == analyzer)        {            return;        }        StringBuilder norm = new StringBuilder();        try        {//对question分词            TokenStream tokens = analyzer.reusableTokenStream("question",                    new StringReader(this.qstr));            tokens.reset();            Token token = tokens.next();            while (token != null)            {                norm.append(                        new String(token.termBuffer(), 0, token.termLength()))                        .append(" ");                token = tokens.next();            }        }        catch (Exception ex)        {                    }        if (norm.length() > 0)            this.qstr = norm.toString();    }}

?

1 楼 poppop_2000 2012-07-11   [b][/b][b][/b][b][/b][b][/b][b][/b][b][/b][b][/i][i][/i][i][/i][i][/u][u][/u][u][/u][u][/b]

热点排行