solrj实现Java操作solr
Solrj实现Java操作Solr:
1.项目通过maven下载solrj
2.添加/修改索引
/**
* 建立索引
*
* @throws Exception
*/
public static void addIndex(Page page) throws Exception {
server.addBean(page);
//优化
server.optimize();
//提交
server.commit();
}
3.删除索引
/**
*
* 删除索引
* @throws Exception
*/
public static void delIndex() {
try {
server.deleteByQuery("*:*");
//提交
server.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
4.查询索引
条件查询、过滤、排序、高亮显示。
/**
* 列表查询
*
* @param skey
* @param range
* @param start
* @param sort
* @throws Exception
*/
public static List search(String skey, int start, int range,
String sort,String field) throws Exception {
SolrQuery params = new SolrQuery();
if (StringUtils.isNotBlank(skey)) {
//设置查询条件
params.set("q","tvname:"+skey);
//开启高亮显示
params.setParam("hl", "true");
//设置高亮字段
params.setParam("hl.fl", "tvname");
//设置高亮字段前缀
params.setHighlightSimplePre("");
//设置高亮字段后缀
params.setHighlightSimplePost("");
} else {
//查询所有
params.set("q", "*:*");
}
//过滤
//params.addFilterQuery("tvId:3");
//分页
params.set("start", "" + start);
params.set("rows", "" + range);
//排序
if(StringUtils.isNotBlank(sort)){
if(sort.equals("asc")){
params.setSort(field, SolrQuery.ORDER.asc);
}else{
params.setSort(field, SolrQuery.ORDER.desc);
}
}
QueryResponse response = server.query(params);
//返回查询数据
List results = response.getBeans(Page.class);
if (StringUtils.isNotBlank(skey)) {
//获取高亮字段数据
Map>> map = response.getHighlighting();
List list = new ArrayList();
Page page = null;
for(){...} //省略
- 点赞
- 收藏
- 关注作者
评论(0)