prader6

solr 7.7 搭建和搜索

  最近做了个solr搜索的demo, 用的是solr7.7,之前网上好多文章搭建solr都是5.5+tomcat。。 自己摆弄了下,发现solr7.7和5.5 的部分文件夹有些改动,没有深究原理也就没有弄成功。

  百度最新的7.7,有2篇博客照着做了下,弄好了。。

博客链接:https://www.cnblogs.com/bangzexiong/p/10374783.html

  这里粘贴一下java代码吧: 下面是service实现层,用controller调用接口就可以了,这里需要注意的一点是 红色部分的字体 ,这里设置多大,条下面的的resultSize就有多大,numFound 是一共查出的数据的总条数。。比如 numFound是2000  rows设置为10,那么resultSize()的大小就为10 在集合中就只有 10条数据。

demo 链接:

链接:https://pan.baidu.com/s/1P4OjlUnjYaps5IH6M4zIMQ
提取码:xre7

复制代码
@Service
public class SolrServiceImpl implements SolrService {

private static final String solrUrl = "http://localhost:8983/solr/happy";

@Override
public PageBean listEcnomic(String name) {
//PageHelper.startPage(1,20);
ArrayList<EcnomicVo> voList = Lists.newArrayList();

try {
HttpSolrClient solrClient = new HttpSolrClient.Builder(solrUrl).build();
// 创建搜索对象
SolrQuery solrQuery = new SolrQuery();
// 设置搜索条件
solrQuery.set("defType","edismax");
solrQuery.set("mm","100%");
solrQuery.set("q","name:*"+ name +"*");
// 分页参数
solrQuery.setStart(0);
// 设置每页显示多少条 这里的row 决定了result.size row多大 下面的result.size 多大
solrQuery.setRows(10);

//发起搜索请求
QueryResponse response = solrClient.query(solrQuery);
// 查询结果
SolrDocumentList results = response.getResults();
// 查询结果总数
long numFound = results.getNumFound();
System.out.println("一共查询出" + numFound + "条数据");
System.out.println(results.size());
for (SolrDocument document : results){
EcnomicVo ecnomicVo = new EcnomicVo();
ecnomicVo.setName(document.getFieldValue("name").toString());
ecnomicVo.setPepole(document.getFieldValue("pepole").toString());
if (document.getFieldValue("createTime") !=null ){
ecnomicVo.setCreateTime(document.getFieldValue("createTime").toString());
}
voList.add(ecnomicVo);
}
System.out.println(voList.size());
PageBean<EcnomicVo> pageBean = new PageBean<>();
pageBean.setTotal(voList.size());
pageBean.setTotalPages(voList.size()/2);
pageBean.setPageNumber(1);
pageBean.setPageSize(2);
pageBean.setPageDatas(voList);
return pageBean;
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
复制代码

posted on   prader6  阅读(434)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

导航

统计

点击右上角即可分享
微信分享提示