在java中使用solr7.2.0 新旧版本创建SolrClient对比


声明:本文转载自https://my.oschina.net/u/2931319/blog/1604898,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

在Java中使用solr 版本7.2.0

solrj已经更新到了7.2.0,新版本solr获取SolrClient的方式也和之前旧版本有所不同

solr6.5开始不推荐直接使用HttpSolrClient的构造方法创建SolrClient(6.5之前版本的创建方式在页末)

从7.0.0开始删除了HttpSolrClient创建客户端的构造方法,使用内部类Builder构建SolrClient

安装solr:https://my.oschina.net/u/2931319/blog/1595303

 import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.client.solrj.response.UpdateResponse; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.MapSolrParams; import org.apache.solr.common.params.SolrParams; import org.junit.Test;  import java.io.IOException; import java.util.HashMap; import java.util.Map;  /**  * Java中使用solr  * @author jaffreyen  * @date 2018/1/9  */ public class SolrConnect {      // solr url     private final static String BASE_URL = "http://localhost:8081/solr";      /**      * 获取SolrClient      * solrj 6.5及以后版本获取方式      * @return      */     public static HttpSolrClient getSolrClient(){         /*          * 设置超时时间          * .withConnectionTimeout(10000)          * .withSocketTimeout(60000)          */         return new HttpSolrClient.Builder(BASE_URL)                 .withConnectionTimeout(10000)                 .withSocketTimeout(60000)                 .build();     }      @Test     public void testQuery() throws IOException, SolrServerException {         HttpSolrClient solrClient = getSolrClient();         // 定义查询条件         Map<String, String> params = new HashMap<String, String>();         params.put("q", "*:*");         SolrParams mapSolrParams = new MapSolrParams(params);         //执行查询 第一个参数是collection,就是我们在solr中创建的core         QueryResponse response = solrClient.query("RoleVO", mapSolrParams);         // 获取结果集         SolrDocumentList results = response.getResults();         for (SolrDocument result : results) {             // SolrDocument 数据结构为Map             System.out.println(result);         }     }      @Test     public void testAdd() throws IOException, SolrServerException {         HttpSolrClient solrClient = getSolrClient();         // 定义数据 solr输入文档 数据结构为Map         SolrInputDocument inputDocument = new SolrInputDocument();         inputDocument.addField("id","123");         inputDocument.addField("roleName", "角色名称");         // 执行添加 ps:如果id相同,则执行更新操作         // 要指定操作的collection 就是solr-home下定义的core         UpdateResponse add = solrClient.add("RoleVO", inputDocument);         //提交添加/更新         solrClient.commit("RoleVO");     }      @Test     public void testDelete() throws IOException, SolrServerException {         HttpSolrClient solrClient = getSolrClient();         // 通过id删除 执行要删除的collection(core)         solrClient.deleteById("RoleVO", "123");         // 还可以通过查询条件删除         // solrClient.deleteByQuery("RoleVO", "查询条件");         // 提交删除         solrClient.commit("RoleVO");     } } 

solrj6.5之前的初始化SolrClient方式

直接使用HttpSolrClient的构造方法初始化

/**      * 获取SolrClient      * solrj 6.5以前的获取方式      * @return      */     public static HttpSolrClient getSolrClient(){         return new HttpSolrClient(BASE_URL);     }

这只是最基本的使用,接下来我会封装一个solr查询工具类,可以非常方便的使用solr

solr的查询语法随后也会发出来

 

本文发表于2018年01月10日 10:32
(c)注:本文转载自https://my.oschina.net/u/2931319/blog/1604898,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2219 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1