繁体   English   中英

Solr QueryParserPlugin中的分析器

[英]Analyzer in Solr QueryParserPlugin

我写了一个QueryParser,看起来有点像Lucene的QueryParser 我已经编写了一个简单的QParser和一个QParserPlugin ,我可以使用它们使用QueryParser。

剩下的一个问题是:在哪里可以获得对Solr模式中配置的Analyzer的引用? 或者,如何将其注入以便在查询解析器的构造函数中使用分析器?

这是我在Java中(简化的)解决方案,用于使用MyQueryParser模式文件中配置的分析器(和默认字段)。

public class MyParserPlugin extends QParserPlugin {
    @Override
    public QParser createParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
        return new MyQParser(qstr, localParams, params, req);
    }
}

class MyQParser extends QParser {
    public MyQParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
        super(qstr, localParams, params, req);
    }

    @Override
    public Query parse() throws ParseException {
        // Getting info from the schema
        String field = this.getReq().getSchema().getDefaultSearchFieldName();
        Analyzer analyzer = this.getReq().getSchema().getQueryAnalyzer();

        // Here we go
        MyQueryParser parser = new MyQueryParser(Version.LUCENE_36, field, analyzer);
        return parser.parse(this.qstr);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM