solrj实现Java操作solr

举报
Smy1121 发表于 2019/06/22 19:15:33 2019/06/22
【摘要】 Solrj 实现Java操作Solr:

Solrj实现Java操作Solr:

1.项目通过maven下载solrj

image.png


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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。