您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關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增刪改查有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。