[英]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.