成都网站建设设计

将想法与焦点和您一起共享

SolrJ中怎么操作solr增删改查

今天就跟大家聊聊有关SolrJ 中怎么操作solr增删改查,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、做网站、石家庄网络推广、小程序制作、石家庄网络营销、石家庄企业策划、石家庄品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供石家庄建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

Solr的特性包括:
• 高级的全文搜索功能 
• 专为高通量的网络流量进行的优化 
• 基于开放接口(XML和HTTP)的标准 
• 综合的HTML管理界面 
• 可伸缩性-能够有效地复制到另外一个Solr搜索服务器 
• 使用XML配置达到灵活性和适配性 
• 可扩展的插件体系

 //分页查询
 //创建SolrServer对象,要对solr
 HttpSolrServer server = new HttpSolrServer(url);
        //连接solr服务器超时时间 单位毫秒
         server.setConnectionTimeout(timeout);
        //是否允许跟踪重定向 默认false
         server.setFollowRedirects(followRedirects);
      //是否允许压缩
         server.setAllowCompression(allowCompression);
     //最大重新连接次数
         server.setMaxRetries(maxRetries);
//创建查询对象
 SolrQuery query = communitySolrHandler.createQuery(pagination);

public SolrQuery createQuery(Pagination pagination){
       SolrQuery query = new SolrQuery();
       CommunitySolrField k  = pagination.getDto();
       String value = k.getShortPy();
       StringBuilder sb = new StringBuilder();
       //拼接查询条件
       if (!CollectionUtils.isEmpty(k.getRegionIds())){
           for (String regionId:k.getRegionIds()){
               sb.append(" regionId:"+regionId);
           }

       }
       if (!CollectionUtils.isEmpty(k.getProjectIds())){
           for (String projectId:k.getProjectIds()){
               sb.append(" projectId:"+projectId);
           }

       }
       query.setQuery(sb.toString());
       //在满足上面条件之外 过滤下面的条件
       if (StringUtils.hasText(value)){
           if (ToolUtils.matcherZh(value)){
               query.addFilterQuery(" communityName:"+value);
           }else {
               query.addFilterQuery("shortPiny:"+value.toLowerCase()+"*" );
           }

       }
       //分页返回结果
       int  start =  ToolUtils.start(pagination.getPageNo(), pagination.getPageSize()) ;
     // 从第几条开始查询
       query.setStart(start);
       query.setRows(pagination.getPageSize());
       return  query;
   }

//更新索引 一般这段代码是用定时任务来跑得
 ConcurrentUpdateSolrServer server = new ConcurrentUpdateSolrServer(solrJSearchClient.getUrl()+ SolrTable.community.toString(), solrJSearchClient.getQueueSize(), solrJSearchClient.getThreadCount());
        List list =  communityDao.findAllCommunitySolr() ;
        if (CollectionUtils.isEmpty(list)) {
            return;
        }
        List ids = new ArrayList();
        List docs = new ArrayList();
        SolrInputDocument doc;
        HanZi hanZi;
        for (CommunityDto communityDto:list){
            doc = new SolrInputDocument();
            hanZi = new HanZi(communityDto.getName());
            doc.addField("id",communityDto.getId());
            doc.addField("communityName",communityDto.getName());
            doc.addField("piny",communityDto.getPiny());
            doc.addField("shortPiny",hanZi.getPinYinHeadChar());
            doc.addField("sortDefault",communityDto.getSortDefault());
            doc.addField("regionId",communityDto.getDicRegionId());
            doc.addField("projectId",communityDto.getProjectId());
            docs.add(doc);
            ids.add(communityDto.getId());
        }
        try {
            //先删除
            server.deleteById(ids);
            server.commit();
            //再添加/更新索引
            server.add(docs);
            //对索引进行优化
            server.optimize();
            server.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }

看完上述内容,你们对SolrJ 中怎么操作solr增删改查有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享标题:SolrJ中怎么操作solr增删改查
文章出自:http://chengdu.cdxwcx.cn/article/ppcpdo.html