使用solr进行搜索程序是非常慢的,是什么原因
程序员文章站
2022-06-09 22:34:13
...
public ArrayList getResult(String searchKey) throws Exception{
ArrayList list=new ArrayList();
try {
SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr");
ModifiableSolrParams params = new ModifiableSolrParams();
// 查询关键词
params.set("q","goodsname:*"+searchKey+"*");
// 分页,,start=0就是从0开始,rows=5当前返回5条记录,,,第二页就是变化start这个值为5就可以了。
params.set("start",0);
params.set("rows",10);
// 排序,,如果按照id 排序,,那么将score desc 改成 id desc(or asc)
params.set("sort","goodsid desc");
// 返回信息 * 为全部 这里是全部加上score,如果不加下面就不能使用score
params.set("fl","*,goodsid");
QueryResponse response;
response = server.query(params);
// 搜索得到的结果数
System.out.println("Find:"+response.getResults().getNumFound()+"\n\n");
// 输出结果
for (SolrDocument doc : response.getResults()) {
System.out.println("goodsid: "+doc.getFieldValue("goodsid").toString());
System.out.println("goodsname: "+doc.getFieldValue("goodsname").toString()+"\n");
list.add(doc);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
ArrayList list=new ArrayList();
try {
SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr");
ModifiableSolrParams params = new ModifiableSolrParams();
// 查询关键词
params.set("q","goodsname:*"+searchKey+"*");
// 分页,,start=0就是从0开始,rows=5当前返回5条记录,,,第二页就是变化start这个值为5就可以了。
params.set("start",0);
params.set("rows",10);
// 排序,,如果按照id 排序,,那么将score desc 改成 id desc(or asc)
params.set("sort","goodsid desc");
// 返回信息 * 为全部 这里是全部加上score,如果不加下面就不能使用score
params.set("fl","*,goodsid");
QueryResponse response;
response = server.query(params);
// 搜索得到的结果数
System.out.println("Find:"+response.getResults().getNumFound()+"\n\n");
// 输出结果
for (SolrDocument doc : response.getResults()) {
System.out.println("goodsid: "+doc.getFieldValue("goodsid").toString());
System.out.println("goodsname: "+doc.getFieldValue("goodsname").toString()+"\n");
list.add(doc);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
上一篇: vue 的全选组件封装你知道多少