博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在java中使用solr7.2.0 新旧版本创建SolrClient对比
阅读量:6279 次
发布时间:2019-06-22

本文共 3185 字,大约阅读时间需要 10 分钟。

hot3.png

在Java中使用solr 版本7.2.0

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

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

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

安装solr:

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
params = new HashMap
(); 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的查询语法随后也会发出来

 

转载于:https://my.oschina.net/u/2931319/blog/1604898

你可能感兴趣的文章
Detach Volume 操作 - 每天5分钟玩转 OpenStack(55)
查看>>
MySQL5.6 部署MHA
查看>>
DG配置网络,报ORA-12514: TNS:listener does not...
查看>>
hadoop开启webHDFS服务及测试
查看>>
DC学院学习笔记(十七):分类及逻辑回归
查看>>
Spring Aop(一)——Aop简介
查看>>
document.createElement
查看>>
Outlook Anywhere 客户端配置详解
查看>>
Go语言学习资料整理
查看>>
精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强
查看>>
麻将游戏
查看>>
用“ICET”轻松诊断 Windows 7 网络连接高级功能
查看>>
在MPAndroidChart库K线图的基础上画均线
查看>>
Gradle 1.12用户指南翻译——第四十四章. 分发插件
查看>>
查询远程或本地计算机的登录账户
查看>>
chk cloud
查看>>
asp.net事件顺序
查看>>
即时数据模块设计 版本V2
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>