solrj实现Java操作solr
【摘要】 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(){...} //省略
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)