solr7.7.0与 springboot 编码 (五)
1接上篇 设置中文分词。
2 现在开始,我这里着重码代码,也可在solr页面自己去手动添加索引,设置数据库连接批量导入索引等,(这里不在做介绍)
3 springboot与solr7集成环境搭建:
3.1. 创建maven工程,下面是依赖
<dependencies> <!-- solr依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-solr</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies>
2 配置文件:配置solr
#solr配置
spring.data.solr.host=http://XXX:8081/solr7/new_core
yml格式的配置改成对应风格的配置;
3编写实体类
package com.demo.entity; import lombok.Data; import org.apache.solr.client.solrj.beans.Field; import org.springframework.data.annotation.Id; import org.springframework.data.solr.core.mapping.SolrDocument; import java.io.Serializable; /** * * @author xxx * @version 1.0 * @date 2020/1/10/010 10:34 **/ @Data @SolrDocument(solrCoreName = "new_core") public class Book implements Serializable { /** * id */ @Id @Field private int id; /** * 内容 */ @Field("content_ik") private String content; /** * 标题 */ @Field("title_ik") private String title; /** * name 这个没设置中文分词 */ @Field("name") private String name; }
4 测试类:
package com.demo.solr; import com.demo.entity.Book; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.common.SolrInputDocument; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.io.IOException; @SpringBootTest(classes = {SolrApplication.class}) @RunWith(SpringRunner.class) class SolrApplicationTests { @Autowired SolrClient solrClient; @Test public void add() throws IOException, SolrServerException { for (int i = 1; i < 51; i++) { // solrClient.deleteById(i+""); SolrInputDocument document = new SolrInputDocument(); Book book = new Book(); book.setId(i); book.setContent("孙尚香削弱,马超削弱,新出英雄,地图调整" + i); book.setName("孙尚香削弱,马超削弱,新出英雄,地图调整" + i); book.setTitle("王者荣耀18赛季-" + i); document.setField("id", book.getId()); document.setField("title_ik", book.getTitle()); document.setField("content_ik", book.getContent()); document.setField("name", book.getName()); solrClient.add(document); } solrClient.commit(); } }
5 页面检测:
增加删除修改都差不多,增加和修改可以通过add(SolrInputDocument)和addBean,根据主键是否存在来判断是新增还是修改,删除可以通过主键或者条件进行删除。增删改之后一定要记得commit!
6:高亮查询,分页,分组查询,这里不在做介绍,自行百度。下一篇将介绍对pdf,doc等文件的索引以及查询。