繁体   English   中英

Solrj:如何指定路径

[英]Solrj: how to specify path

我正在尝试使用TermsComponent来实现与Solrj的autosuggest,但我没有看到如何指定路径(即http://localhost:8983/solr/terms/terms部分)。

如何使用Solrj指定路径?

额外奖励:有没有办法为terms.fl param指定多个字段?

谢谢

开始了:

    SolrQuery query = new SolrQuery();
    query.setParam(CommonParams.QT, "/terms");
    query.setParam(TermsParams.TERMS, true);
    query.setParam(TermsParams.TERMS_LIMIT, "10");
    query.setParam(TermsParams.TERMS_FIELD, "title", "description");  // or whatever fields you want
    query.setParam(TermsParams.TERMS_PREFIX_STR, typedInput);

这假设您将条款组件连接在“/ terms”; 默认的solrconfig.xml包含它。

对于奖励:您可以通过为TERMS_FIELD (或多个URL &terms.fl=foo params)添加多个字符串来添加多个字段。

谢谢毛里西奥,指出我正确的方向。

我花了很多时间让TermsComponent工作。

在一天结束时,我意识到需要调用一组不同的命令才能从“/ terms”requestHandler中检索结果。

我试图使用结果

HttpSolrServer server = new HttpSolrServ(solrUrl);
List<SolrDocument> list = server.query(query).getResults()

但是,从TermsComponent获取结果的正确方法是

HttpSolrServer server = new HttpSolrServ(solrUrl);
TermsResponse termResp = server.query(query).getTermsResponse();
List<Term> tList = termResp.getTerms("fieldNAME");

我希望将来可以帮助别人。

在SolrJ 1.4.1中没有对TermComponent的直接支持,但是看一下相应的补丁 ,自己很容易实现它。

由于TermsComponent是一个标准组件,您不需要使用/ terms,您可以将它挂钩到标准查询请求处理程序

暂无
暂无

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

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