java中使用solr SpringBoot集成solr

本文介绍如何在Maven项目中引入Solr库连接jar,实现基于Spring Boot的Solr搜索功能。通过配置pom.xml文件,添加必要的依赖,如spring-boot-starter-data-solr和lombok等。同时,展示了如何在Java代码中使用SolrTemplate进行查询操作,以及前端HTML页面的实现,包括使用jQuery发起Ajax请求获取搜索结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建maven项目引入jar包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>cn.pjj</groupId>
  <artifactId>SpringBoot_solr</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.14.RELEASE</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- 引入solr库连接jar-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-solr</artifactId>
		</dependency>
		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.14</version>
            <scope>provided</scope>
        </dependency>
	</dependencies>
</project>

application.yml配置

spring: 
  data: 
    solr: 
      host: http://192.168.162.131:8983/solr
server: 
  port: 8888  

HTML代码

<!DOCTYPE html>
<html>
<head>
<script  src="jquery-3.3.1.js"></script>
<meta charset="UTF-8">
<title>Insert title here</title>

</head>
<body>
    查找:<input id="keyy" type="text" name="key"> <br/>
    <button onclick="query()">提交</button>
    <div id="dat">
    </div>
</body>
<script type="text/javascript">
	function query(){
		$.ajax({
			url:'query',
			dataType:'json',
			data:"key="+$("#keyy").val(),
			type:'get',
			success:function(s){
				$("#dat").text(JSON.stringify(s));
			}
		});
	}

</script>
</html>

java代码

package cn.pjj;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.solr.core.SolrTemplate;
import org.springframework.data.solr.core.query.SimpleQuery;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SolrStart {
	/**
	 * 自动装配   连接Solr的类
	 */
	@Autowired
	SolrTemplate solrTemplate;

	@GetMapping("/query")
	public List<EBean> text(@RequestParam("key") String key) {
		//指定查询索引
		SimpleQuery sq=new SimpleQuery("name_ik:"+key);
		//查到查询数据
		Page<EBean> query = solrTemplate.query(sq, EBean.class);
		List<EBean> content = query.getContent();
		//将数据返回带html
		return content;
	}

}
package cn.pjj;

import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.solr.core.mapping.SolrDocument;

import lombok.Data;
@Data
//指定核(core)
@SolrDocument(solrCoreName="mycore")
public class EBean {
	String id;
	//指定对应键名
	@Field("name_ik")
	String name;
	@Field("sex_s")
	String sex;
	@Field("age_i")
	String age;
	@Field("email_s")
	String email;
	@Field("phone_s")
	String phone;
}

package cn.pjj;

import org.apache.solr.client.solrj.SolrClient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.solr.core.SolrTemplate;

@SpringBootApplication
public class SolrM {
	/**
	 * 管理bean  solrTemplate 实现自动装配
	 * @param client
	 * @return
	 */
	@Bean
	 public SolrTemplate solrTemplate(SolrClient client) {
	    return new SolrTemplate(client);
	}
	public static void main(String[] args) {
		SpringApplication.run(SolrM.class, args);
	}

}

运行效果:
在这里插入图片描述

内容概要:本文档主要展示了C语言中关于字符串处理、指针操作以及动态内存分配的相关代码示例。首先介绍了如何实现键值对(“key=value”)字符串的解析,包括去除多余空格和根据键获取对应值的功能,并提供了相应的测试用例。接着演示了从给定字符串中分离出奇偶位置字符的方法,并将结果分别存储到两个不同的缓冲区中。此外,还探讨了常量(const)修饰符在变量和指针中的应用规则,解释了不同类型指针的区别及其使用场景。最后,详细讲解了如何动态分配二维字符数组,并实现了对这类数组的排序与释放操作。 适合人群:具有C语言基础的程序员或计算机科学相关专业的学生,尤其是那些希望深入理解字符串处理、指针操作以及动态内存管理机制的学习者。 使用场景及目标:①掌握如何高效地解析键值对字符串并去除其中的空白字符;②学会编写能够正确处理奇偶索引字符的函数;③理解const修饰符的作用范围及其对程序逻辑的影响;④熟悉动态分配二维字符数组的技术,并能对其进行有效的排序和清理。 阅读建议:由于本资源涉及较多底层概念和技术细节,建议读者先复习C语言基础知识,特别是指针和内存管理部分。在学习过程中,可以尝试动手编写类似的代码片段,以便更好地理解和掌握文中所介绍的各种技巧。同时,注意观察代码注释,它们对于理解复杂逻辑非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值