我正在尝试从solrj QueryResponse对象获取TermsResponse对象,但它似乎没有工作。我正在使用scala,但我也很高兴看到一个有效的java示例。
首先,我设置了术语矢量查询,它看起来有效:
val solrurl = "http://localhost:8983/solr"
val server= new HttpSolrServer( solrurl )
val query = new SolrQuery
query.setRequestHandler("/tvrh")
query.set("fl", "text")
query.set("tv.all", true)
query.setQuery("uid:" + id)
val response = server.query(query)
该查询返回一个QueryResponse对象,其toString看起来是一个JSON对象。该对象包括术语矢量信息(术语,频率等)作为JSON对象的一部分。
但是当我这样做时,我总是得到一个空对象:
val termsResponse = Option(response.getTermsResponse)
此功能是否已弃用?
如果是这样,从QueryResponse检索结构的最佳方法是什么?转换为JSON?其他一些消息来源指向使用response.get(“termVector”),但这似乎已被弃用。
有什么想法吗?
由于
答案 0 :(得分:2)
我一直在使用简单的java对象,具有以下配置。
//Adding terms for 2 word phrases
qterms.setTerms(true);
qterms.setRequestHandler("/terms");
qterms.setTermsLimit(20);
qterms.addTermsField("PhraseIndx2");
qterms.setTermsMinCount(20);
QueryResponse response = solr.query(query);
SolrDocumentList results = response.getResults();
//queryresponse get all terms from in 2 phrase field
System.out.println ("printing the terms from queryresponse: \n");
QueryResponse resTerms = solr.query(qterms);
TermsResponse termResp =resTerms.getTermsResponse();
List<Term> terms = termResp.getTerms("PhraseIndx2");
System.out.print(terms.size());