温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SolrJ 中怎么操作solr增删改查

发布时间:2021-07-27 15:49:02 来源:亿速云 阅读:214 作者:Leah 栏目:大数据

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

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<CommunitySolrField> 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<CommunityDto> list =  communityDao.findAllCommunitySolr() ;         if (CollectionUtils.isEmpty(list)) {             return;         }         List<String> ids = new ArrayList<String>();         List<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();         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增删改查有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI