如何用solr实现网页快照
发布网友
发布时间:2022-04-08 18:55
我来回答
共1个回答
热心网友
时间:2022-04-08 20:24
public String getById(Page page, String id) throws SolrServerException,
MalformedURLException {
// 获取连接服务
CommonsHttpSolrServer server = SolrServer.getInstance().getServer();
// 提升性能采用流输出方式
server.setRequestWriter(new BinaryRequestWriter());
// 搜索条件的设置
SolrQuery query = new SolrQuery();
String ckw = page.getConditions().get("kw").toString();// 为防止和其他变量重名,在变量的开始加上condition的首字母c
query.set("q", "content:" + ckw);
QueryResponse qrsp = server.query(query);
SolrDocumentList list = qrsp.getResults();
String cache_content = null;
Iterator<SolrDocument> iter = list.iterator();
while (iter.hasNext()) {
SolrDocument doc = iter.next();
String idStr = doc.getFieldValue("id").toString();
if (idStr.equals(id)) {
byte[] inOutb = (byte[]) doc.getFieldValue("cache_content");
// System.out.println(inOutb);
try {
cache_content = new String(inOutb, "gbk");
// System.out.println(cache_content);
} catch (Exception e) { // TODO Auto-generated catch
e.printStackTrace();
}
break;
}
}
return cache_content;
}
这个方法里,我主要处理的就算快照的显示。其中主要用到的就是byte[] inOutb = (byte[]) doc.getFieldValue("cache_content");