.printStackTrace

本文深入探讨了如何使用Java实现Solr文档的转换及查询操作,包括对象到Solr文档的映射、异常处理、以及SQL查询机制的应用。

}else {

  if (o != null) {

  sid.addField(fieldName, o.toString());

  }

  }

  }

  }

  } catch (IllegalArgumentException e) {

  e.printStackTrace();

  } catch (SecurityException e) {

  e.printStackTrace();

  } catch (IllegalAccessException e) {

  e.printStackTrace();

  } catch (InvocationTargetException e) {

  e.printStackTrace();

  } catch (NoSuchMethodException e) {

  LOG.error("请检查PO类中的field对应的各个setter和getter是否存在!");

  e.printStackTrace();

  } catch (NoSuchFieldException e) {

  LOG.error("请检查schema中的field是否不存在于PO类中!");

  e.printStackTrace();

  }

  }

  return sid;

  }

  LOG.warn("即将要转换的SolrDocument或者要更新的Object为null");

  return null;

  }

  查询索引

  /**

  * 根据关键字查询 [测试通过 - 使用 solr内部转换机制]

  * @param <T>

  * @param server    solr客户端

  * @param solrql     sql查询串

  * @param pageNum    当前页码

  * @param pageSize    每页显示的大小

  * @param clzz        对象类型

  * @return

  */

  public static <T>Page<T> query(SolrServer server,String solrql,int pageNum,int pageSize, Class<T> clzz){

  SolrQuery query = new SolrQuery();

  query.setQuery(solrql);

  query.setStart((pageNum-1)*pageSize);

  query.setRows(pageSize);

  QueryResponse response = null;

  try {

  response = server.query(query);

  } catch (SolrServerException e) {

  e.printStackTrace();

  return null;

  }

  //查询到的记录总数

  long totalRow = Long.valueOf(response.getResults()。getNumFound())。intValue();

  //查询结果集

  List<T> items = response.getBeans(clzz);

  //填充page对象

  return new Page<T>(pageNum, pageSize, totalRow, items);

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值