zoukankan      html  css  js  c++  java
  • 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;
    }
    }
  • 相关阅读:
    codeforce 266c Below the Diagonal 矩阵变换 (思维题)
    8月21日训练日记
    CodeForces 651B Beautiful Paintings
    CodeForces 651 C Watchmen
    CodeForces 17D Notepad(同余定理)
    CodeForces 19B Checkout Assistant
    Code Forces 18D Seller Bob(简单DP)
    HOJ Recoup Traveling Expenses(最长递减子序列变形)
    ZOJ 3469Food Delivery(区间DP)
    Code Forces 149DColoring Brackets(区间DP)
  • 原文地址:https://www.cnblogs.com/prader6/p/10470459.html
Copyright © 2011-2022 走看看