solr6之solrJ的使用

solr-solrj-6.6.0.jar 立即下载

1、solrJ客户端实例创建并设置连接超时时间:

final String solrUrl = "http://127.0.0.1:8080/solr";
//创建solrClient同时指定超时时间,不指定走默认配置
HttpSolrClient build = new HttpSolrClient.Builder(solrUrl)
                .withConnectionTimeout(10000)
                .withSocketTimeout(60000)
                .build();

不同solr版本solrj 的创建方式有所不同

//solr4创建方式
//SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr");  
//solr5创建方式,在url中指定core名称:core1
//HttpSolrClient solrServer=new HttpSolrClient("http://127.0.0.1:8080/solr/core1");
//solr7创建方式,在url中指定core名称:core1
HttpSolrClient solrServer= new HttpSolrClient.Builder("http://127.0.0.1:8080/solr/core1").build();

注意:solr5以后URL指向自定义核心的名称,如实例名称是core1,那么URL为http://127.0.0.1:8080/solr/core1

solrJ之查询

 /**
     * @Description:查询
     * @throws SolrServerException
     * @throws IOException
     */
    public void querySolr() throws SolrServerException, IOException{
	//获取连接
	HttpSolrClient solrClient= new HttpSolrClient.Builder(solr_url).build();
	//封装查询条件
	Map<String,String> query = new HashMap<String, String>();
	//q在sole中表示条件,*:*表示查询所有结果
	query.put("q","*:*");
	//添加到MapSolrParams对象
	MapSolrParams queryParams =  new MapSolrParams(query);
	//执行查询,返回结果
	QueryResponse response = solrClient.query(queryParams);
	//获取doc文档
	SolrDocumentList list = response.getResults();
	for (SolrDocument solrDocument : list) {
	    System.out.println("id:" + solrDocument.get("id")  + "\name:"
		    + solrDocument.get("name"));
		   
	}
	//关闭连接
	solrClient.close();
	
    }

solrJ之新增索引

 /**
     * @throws IOException 
     * @throws SolrServerException 
     * @Description:添加
     */
    public void solrAdd() throws SolrServerException, IOException{
	//获取连接
	SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
	//创建文档doc
	SolrInputDocument solrInputDocument = new SolrInputDocument();
	//添加内容
	String id = UUID.randomUUID().toString();
	String name = "李四";
	solrInputDocument.addField("id", id);
	solrInputDocument.addField("name", name);
	//添加到client
	UpdateResponse updateResponse = solrClient.add(solrInputDocument);
	System.out.println(updateResponse.getElapsedTime());
	//提交
	solrClient.commit();
	solrClient.close();
    }

solrJ之删除索引

    /**
     * @Description:通过id删除
     * @throws SolrServerException
     * @throws IOException
     */
    public void delete() throws SolrServerException, IOException{
	//获取连接
	SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
	//通过id删除
	String id = "1";
	solrClient.deleteById(id);
	//提交
	solrClient.commit();
	solrClient.close();
	
    }
    

JavaBean绑定

SolrJ支持通过@Field注解隐式转换文档与任何类。每个实例变量在Java对象可以映射到一个相应的Solr字段.

在managed-schema文件中添加字段
managed-schema位于你的core的conf目录下

<!--自定义bean-->
	<field name="user_name" type="text_ik" indexed="true" stored="true"/>
	<field name="user_sex" type="string" indexed="true" stored="true"/>
	<field name="user_age" type="string" indexed="true" stored="true"/>
	<field name="user_like" type="string" indexed="true" stored="true" multiValued="true"/>
	<field name="user_context" type="text_ik" indexed="true" stored="true"/>

在javaBean中配置注解
@Field(“value”) value与 field 中 name相同,以将javabean属性映射到field中

public class User {
    
    @Field("id")
    private String id;
    @Field("user_name")
    private String name;
    @Field("user_sex")
    private String sex;
    @Field("user_age")
    private String age;
    @Field("user_like")
    private String[] like;
    @Field("user_context")
    private String context;
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String[] getLike() {
        return like;
    }
    public void setLike(String[] like) {
        this.like = like;
    }
    public String getContext() {
        return context;
    }
    public void setContext(String context) {
        this.context = context;
    }
    public User(String id, String name, String sex, String age, String[] like,
	    String context) {
	super();
	this.id = id;
	this.name = name;
	this.sex = sex;
	this.age = age;
	this.like = like;
	this.context = context;
    }
    public User(){
	
    }
    
}
 /**
     * @Description:添加bean对象
     * @throws IOException
     * @throws SolrServerException
     */
    public void addBean() throws IOException, SolrServerException{
	//获取连接
	SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
	//创建user
	User user = new User();
	user.setId(UUID.randomUUID().toString());
	user.setName("张五");
	user.setAge("22");
	user.setSex("男");
	String[] like = {"游泳","唱歌"};
	user.setLike(like);
	user.setContext("一个热情,开朗的人");
	//添加对象
	UpdateResponse updateResponse = solrClient.addBean(user);
	//提交
	solrClient.commit();
	solrClient.close();
    }
    
    public void getBean() throws SolrServerException, IOException{
	//获取连接
	SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
	//创建solrQuery对象,设置条件
	SolrQuery solrQuery = new SolrQuery("user_name:张*");
	
	//添加回显内容
	solrQuery.addField("id");
	solrQuery.addField("user_name");
	solrQuery.addField("user_sex");
	solrQuery.addField("user_age");
	solrQuery.addField("user_like");
	solrQuery.addField("user_context");
	//设置每页显示多少条
	solrQuery.setRows(15);
	//执行查询
	QueryResponse queryResponse = solrClient.query(solrQuery);
	//获取doc文档
	List<User> users = queryResponse.getBeans(User.class);
	//遍历
	for (User user : users) {
	    System.out.println(
	    	"id:"+user.getId()+"\t name:"
	    	+ user.getName()+"\t age:"
	    	+ user.getAge()+"\t sex:"
	    	+ user.getSex()+"\t like:"
	    	+ user.getLike()+"\t contest:"
	    	+user.getContext()
	    );
	}
	
    }
solrj的使用 NULL 博文链接:https://747017186.iteye.com/blog/2111497 立即下载

相关推荐

NIST随机性测试实战:从理论公式到结果解读

本文详细解析了NIST随机性测试的实战应用,从基础测试到高级测试,涵盖频数测试、块频数测试、游程测试等核心方法。通过实际案例和参数设置经验,帮助读者理解如何解读测试结果并排查常见问题,提升随机数生成质量。文章还分享了自动化测试流程和硬件RNG特殊处理技巧,适合密码学和区块链开发者参考。

weixin_29323365的博客 314

java设置solr4.x连接超时时间

话不多说直接上代码 private static CloudSolrServer cloudSolrServer; private static synchronized CloudSolrServer getCloudSolrServer(final String zkHost) { if(cloudSolrServer == null) { try { cloudSolrServer = new CloudSolrServer(zkHost); cloudSolrServer

qq_39306234的博客 439

ui(new Ui::MainWindow)的解析

Ui命名空间的变量名,和默认空间的变量名虽然一样,但实际是两个不同的东西。所以构造函数中调用MainWindow是没问题的,因为它不是在调用自身,而是在调用其他命名空间下的另一个同名的MainWindow类。这里使用C++的成员初始化列表语法,初始化成员变量指针ui,可这里有个问题,在MainWindow的构造函数中new 一个MainWindow,这又调用一下MainWindow的构造函数,这岂不是会死循环?ui_mainwindow.h文件。mainwindow.h文件.

sinat_31608641的博客 1193

java关闭solr连接_Java SolrClient.close方法代码示例

import org.apache.solr.client.solrj.SolrClient; //导入方法依赖的package包/类public static void main(String[] args) throws CorruptIndexException, IOException, SolrServerException {if (args.length < 3) {Syste...

weixin_31755877的博客 400

A Side Scan Sonar Image Denoising Algorithm Based on Compound of Fuzzy Weighted Average and Kalman F

Abstract 水下侧扫声纳图像的噪声来源:高斯噪声、脉冲、斑点噪声。 传统方法只能移除部分噪声,并且去噪后容易造成细节模糊。 本文在考虑到噪声的随机性以后,提出一种融合了模糊加权平均和卡尔曼滤波的去噪方法。 在最大化保留图像细节的基础上,同时去除高斯噪声和脉冲噪声 一.Introduction 由于海底环境和声波自身干涉的影响,声纳图像生成的图像难免会有噪点。声纳采集的图像通常会有高斯噪声、脉...

qq_44516871的博客 927

【SoloPi】SoloPi使用2-功能使用,录制回放

Soloπ是什么 Soloπ是一个无线化、非侵入式的Android自动化工具,公测版拥有录制回放、性能测试、一机多控三项主要功能,能为测试开发人员节省宝贵时间。 录制回放功能 Soloπ拥有录制操作的能力,用户只需要通过Soloπ执行用例步骤,Soloπ就能够将用户的操作记录下来,并且支持在各个设备上进行回放,这一切都能够在手机上独立完成。 ...

q_Catherine的博客 5826

solrj 对应 multiValued="true"情况,@Field必须设置

  /** * 分类 */ @Field("category") private List&lt;String&gt; category;  

limeng650419的专栏 463

一条龙开发指南:MCP AI Agent 理论+项目实战开发你的MCP Server

MCP(Model Connection Protocol)是Anthropic于2024年推出的AI模型连接协议,旨在为AI模型提供开放、通用的标准化接口,类似于“USB-C”接口,使AI模型能够无缝连接各种数据源和工具。MCP通过标准化协议解决了AI系统集成中的碎片化问题,提升了开发效率和系统可靠性。开发者可以通过简单的配置,快速接入不同的MCP Server,实现AI模型的多样化应用。MCP支持多种协议,如Stdio、SSE等,并通过JSON-RPC格式进行数据传输。文章还以腾讯云代码助手为例,展示了

杨不易呀 3043

Solr学习笔记(三)Solr客户端开发实例

Warming Up: 本文章通过两种方法索引数据为主线,说明Solr客户端开发,两种方法分别是:直接发送XML文件到Solr服务器;通过Solrj建立客户端程序。本文分别从这两个方面各写一个例子程序; Dependency:Solr: apache-solr-1.4.1    Tomcat: apache-tomcat-7.0.0 Note:本文谈论到不止数据索引,还包括对Solr索引数据...

Kylin Soong Blog 225

嵌入式系统开发笔记96:将STM32CubeIDE设置为中文

本文介绍将STM32CubeIDE设置为中文的方法。

snmplink的博客 8533

C++(Qt)软件调试---Windows下Qt使用dump定位崩溃位置(1)

在C++/Qt程序崩溃时,往往很难找到崩溃的原因,如果是稳定复现的问题还好,但是多数情况遇见的问题是随机出现的,这时想要快速找到问题并解决就需要通过dump文件定位崩溃位置。

mahuifa的博客 1万+

SolrJ更新索引数据

SolrJ更新索引数据 SolrJ可以看做是JDBC,有增删改查操作,对Solr中存储的索引数据进行增删改查操作。 Model类 JDBC操作需要Model类,SolrJ操作数据也需要model类。可以使用SolrJ提供的SolrInputDocument类,也可以自己定义bean。我这里场景需要,所以自定义JavaBean,为下面solrJ操作数据做准备。 @Field(value=”UN...

huangliuyu00的博客 2823

堆一呼一吸之间:动态扩缩容引发JVM堆内存震荡的伸缩算法、代际传导与容器定容解析

Kubernetes扩容后,新Java实例的GC频率常比老实例高出数倍,堆容量反复伸缩。本文从一次支付系统的GC陡增出发,结合HotSpot源码与JDK 8实测,拆解堆伸缩的记账规则:期望容量以GC后已用量为基数、以Xms为下限,按空闲比例判断扩缩,收缩只在老年代回收后按0%、10%、40%、100%步进;再剖析年轻代随老年代联动、晋升风暴与元空间触发线,对比Parallel、G1、ZGC等收集器及JDK 26的变化,讨论容器分账、HPA共振与原地扩缩容,最后给出分级定容、预热与监控的方案。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 15万+

solr6使用solrJ做XML数据导入

摘要: Solr6.0的solrJ接口有部分变化,我将使用SolrJ的API,把一段XML文档数据插入到Solr数据库中。需要的软件支持 JDK1.8以上 Solr6.0 Eclipse 4.5 solr-solrj-6.0.0.jar dom4j-1.6.1.jar XML文档转换为Java对象我准备了一段XML数据,保存在cd.xml文档中。<CATALOG> <CD> <TIT

随-记的专栏 3133

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

关于Solr6.0中solrj使用简单例子

solr6.0的solrJ接口有部分变化,下面列出了简单的使用实例,有需要的朋友可以参考下。 package com.ailk.solr6; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; imp...

dianzhouyu2189的博客 144

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Solr6.6的安装以及Java使用SolrJ调用Solr服务,springmvc使用solr,springboot使用solr

一,Solr环境安装与java使用solrj调用solr服务 1、安装Jdk1.8(solr6.6是 1.8编译的)   /    Tomcat8  /   Solr6.6   各软件 2、 下载  : 下载 solr 6.6 版本:http://www.apache.org/dyn/closer.lua/lucene/solr/6.6.0 3、将 solr 压缩包中 solr 6.6 下的server\sol

奔跑的蜗牛的博客 3588

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

solr6.6solrj编程,参数意义以及数据导入

一,简介                        前面已经说了solr6.6的配置和管理工具的使用,现在来说下solr6.6api接口编程,solr6.6的api接口编程可以应对java,c#,python这些语言进行编程,本博客以java为例进行说明。同时说明下里面的配置文件solrConfig.xml和managed-schema内容,还有如何从数据库中导入数据到索引库中

K_122的博客 2617

Solr6使用SolrJ导入JSON数据

摘要: 之前,曾讨论过如何使用SolrJ将XML文件数据导入到Solr数据库,参见http://blog.youkuaiyun.com/jiangchao858/article/details/52766017。这次,使用的数据结构是JSON,解析过程将更为简单。需要的软件支持JDK1.8以上 Solr6.0 Eclipse 4.5 solr-solrj-6.0.0.jar dom4j-1.6.1.ja

随-记的专栏 5821

mysql6.2中文补丁,solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用

solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用solr就不多介绍了。是用于搜索功能的开源工具,很强大一、solr环境部署solr本身能够用jetty启动,但是还是用tomcat启动比较适合我自己。学习solr有两个星期了,到现在(2016.11.27)solr最新版已经是6.3.0了,不过没关系,基本...

weixin_35830006的博客 104

Solr 6.0.0:SolrJ操作Solr

话不多说,下面贴出本人通过SolrJ操作Solr测试类: packagecom.text; importjava.io.IOException; importjava.util.List; importorg.apache.solr.client.solrj.SolrClient;...

chunxunchan1396的博客 91

solr6.6初探之solrj

一. solrj简介:   solrj可以使Java应用程序很方便的访问与操作solr。solrj有几个核心类,分别为:1.SolrClient2.SolrRequests3.SolrQuerys4.SolrReponses   tips:该jar包可以在${solr.home}/dist/solrj-lib 找到   gralde配置:   ...

weixin_33700350的博客 247

Solr6.6.2之SolrJ

SolrJ就是Solr服务器的java客户端。 环境准备 1.JDK1.8 2.SolrJ6.6.2 3.Eclipse 4.Tomcat8 项目结构 所需jar包在/solr-6.6.2/dist、/solr-6.6.2/dist/solrj-lib以及/solr-6.6.2/server/lib/ext下 使用solrj完成索引维护 1.添加/修改索引 ...

张育嘉的博客 681

IKAnalyzer 中文分词支持Solr 6以上 solrj 6

IKAnalyzer 中文分词支持Solr 6以上 solrj 6目录IKAnalyzer 中文分词支持Solr 6以上 solrj 6 目录 源码工程 使用步骤说明 配置文件处理 配置文件说明 引入使用 运行使用IKAnalyzer 根据最新源码改造,以适配6.0以上solr ,支持IKAnalyzer和IKTokenizerFactory两种方式做分词: 支持IKAnalyzer 支持IKTok

nanyiwei的专栏 1162

Solr-6.5.1之Solrj的使用

第一步:添加maven依赖<dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>6.5.1</version> </dependency>第二步:书写solr连接类package solrTest;import org.apache.solr.c

大白能的博客 2797

solr与solrj6.0查询总结

solr查询需要注意的几个点: 1.配置文件中如果该列的type=string,则是完全匹配查询,所以配置分词不要忘记了。 另外如果给字段加上双引号也是完全匹配查询,例如 2.多个查询条件需要连接符,连接符解释高速入口,经测试支持括号。 划重点:“+”不等于AND,完全不同,加号只需要满足后面的条件,前面的条件可有可无,所以推荐使用AND、OR、NOT等集合修饰符。3.顺便记录删除的方法

u010698087的博客 1869
上一篇: Solr6.2搭建和配置ik中文分词器
下一篇: Maven:Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resource
QEcode
博客等级 码龄10年 39粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值