我是solr
的新手。我正在使用有数据的solr。现在我想通过搜索solr来获取特定文档的数据。我有一个属性值,我想在solr中搜索。我是通过java
这样做的。我已尝试过网络上的所有解决方案,但没有工作。
public void searchQuery(String valuetobesearched) throws UnsupportedEncodingException {
server = new SolarConnectionClass().getSolrInstance("URL of my solr");
SolrQuery sQueryParams = new SolrQuery();
//String queryString = "*:*";
sQueryParams.setQuery("name:"+URLEncoder.encode(valuetobesearched));
//sQueryParams.addFilterQuery("name:"+URLEncoder.encode(valuetobesearched));
/*sQueryParams.setStart(0);
sQueryParams.setRows(5000);*/
//sQueryParams.set("defType", "edismax");
//sQueryParams.set
QueryResponse response = null;
try {
System.out.println(sQueryParams);
response = server.query(sQueryParams);
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
SolrDocumentList results = response.getResults();
System.out.println(results.size());
/*if(results.size() > 0) {
for (int i = 0; i < results.size(); ++i) {
SolrDocument sortedDocument = results.get(0);
System.out.println(sortedDocument.getFieldValue("PQR"));
}
}
*/
}
怎么做呢?
答案 0 :(得分:0)
使用SolrQuery
课程时,您没有编码参数。
只需以这种方式设置查询,客户端就会透明地执行&#34;脏&#34;作业:
sQueryParams.setQuery("name:" + valuetobesearched);
同样,您可以使用以下方法查看找到的结果总数:
response.getResults().getNumFound()
response.getResults()
的大小取决于setRows
参数(评论中的帖子)。
为了理解Solr查询的工作原理,我建议您使用浏览器进行测试,然后将这些请求转换为SolrJ。
例如,帖子中的网址是:
http://localhost:8983/solr/collection1/select?q=name:hello